Я устанавливаю систему наследования для своего проекта в Unity, используя C#.
Entity: MonoBehaviour // Humanoid: Entity
Я делаю это, чтобы я мог настроить свойства в каждом типе класса, указав c тип моба, в котором он находится в игре.
public class Entity : MonoBehaviour
{
public Animator anim;
public CapsuleCollider capsuleCollider;
void Start()
{
anim = GetComponent<Animator>();
capsuleCollider = GetComponent<CapsuleCollider>();
}
}
public class Humanoid : Entity
{
void Start()
{
capsuleCollider.radius = 0.3f;
}
}
Моя проблема в том, что привязанный GameObject Humanoid не будет запускать свой старт ( ) метод после запуска метода запуска Entity. Он выдает эту ошибку, поскольку они пытаются запустить одновременно:
UnassignedReferenceException: The variable capsuleCollider of NPC has not been assigned.
Так что я не уверен, как подключиться (я верю, что это правильная терминология) к концу Start моей сущности () Метод с помощью моего метода Humanoid Start ().
Я мог бы изменить начало Entity на Awake (), и это могло бы решить мою проблему, но я хочу настроить несколько уровней наследования, чтобы между ними не работали .