Как дописать что-то в унаследованный метод, но чтобы старый функционал сохранился, C#?
Работаю с unity, мне нужно чтобы были разные типы врагов, но у них есть общий функционал (передвижение, например), поэтому я унаследовал от общего класса новый, и мне нужно в дочернем дописать что-то в метод Update так, чтобы сохранился старый функционал.
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Полиморфизм, ничего необычного
public class Enemy
{
public virtual void Move()
{
Debug.Log("base move");
}
}
public class Beast : Enemy
{
public override void Move()
{
Debug.Log("override move");
base.Move();
}
}
Проверка
Enemy enemy = new Beast();
enemy.Move();
Вывод в отладку
override move
base move
То есть у родителя пометьте метод Update() как virtual, а у наследника как override и вызовите код родителя из наследника через base.Update() в начале или конце метода, в зависимости от ваших потребностей.