Метод в родительском и дочернем классе

Программирование на Юнити.

Метод в родительском и дочернем классе

Сообщение Alkos26Rus 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");
}

}
 


Единственное решение которое пришло в голову, это создать второй метод, но это похоже на костыли, может кто знает как это сделать по уму?
Синтаксис:
Используется 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");
}

}
 
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1640
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Метод в родительском и дочернем классе

Сообщение Tolking 24 май 2022, 15:27

public override void Damage(float _damage){
Base.Damage(float _damage);
Debug.Log("DamageChild");
}
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2715
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Метод в родительском и дочернем классе

Сообщение Alkos26Rus 24 май 2022, 17:23

Да, вроде работает так как нужно, большое спасибо
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1640
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7