Метод в родительском и дочернем классе
Добавлено: 24 май 2022, 15:15
Задача простая, есть родительский класс, например ClassObject и есть наследуемый, например ClassDoor. Нужно что бы метод Damage вызывался и в родительском и дочернем классе. Допустим в родительском методе происходит какой то базовый сценарий, например отнимание жизни, проигрывание звука, а в дочернем могут происходить уникальные события, зависящие от типа объекта, ну например когда бьешь по двери, то нужно чтобы сыпалась пыль.
Переназначение не подходит, потому как будет срабатывать только дочерний метод
Единственное решение которое пришло в голову, это создать второй метод, но это похоже на костыли, может кто знает как это сделать по уму?
Переназначение не подходит, потому как будет срабатывать только дочерний метод
Синтаксис:
Используется csharp
public class ClassObject : MonoBehaviour{
public virtual void Damage(float _damage){
Debug.Log("DamageParent");
}
}
public class ClassDoor : ClassObject {
public override void Damage(float _damage){
Debug.Log("DamageChild");
}
}
public virtual void Damage(float _damage){
Debug.Log("DamageParent");
}
}
public class ClassDoor : ClassObject {
public override void Damage(float _damage){
Debug.Log("DamageChild");
}
}
Единственное решение которое пришло в голову, это создать второй метод, но это похоже на костыли, может кто знает как это сделать по уму?
Синтаксис:
Используется csharp
public class ClassObject : MonoBehaviour{
public void Damage(float _damage){
Debug.Log("DamageParent");
DamageChild(_damage);
}
public virtual void DamageChild(float _damage){
}
}
public class ClassDoor : ClassObject {
public override void DamageChild(float _damage){
Debug.Log("DamageChild");
}
}
public void Damage(float _damage){
Debug.Log("DamageParent");
DamageChild(_damage);
}
public virtual void DamageChild(float _damage){
}
}
public class ClassDoor : ClassObject {
public override void DamageChild(float _damage){
Debug.Log("DamageChild");
}
}