В единстве я использую функцию OnTriggerEnter. попробуйте оператор if, чтобы увидеть, столкнулся ли я с объектом, используя collider.gameobject.getcomponent <> ();если компонент является классом, он работает нормально, если компонент является интерфейсом, он возвращает ошибку «не может неявно преобразовать тип взаимодействующий в bool» (взаимодействующий - это имя интерфейса). Совершенно новичок в программировании и любопытно, почему это проблема?
// код ошибки, выделенная ошибка - строка оператора if. интерактивным является интерфейс
private void OnTriggerEnter(Collider coll)
{
if (coll.gameObject.GetComponent<Interactable>())
{
Interactable interactable = coll.gameObject.GetComponent<Interactable>();
interactable.CheckEffect(ability);
}
}
// рабочий код, враг это класс
private void OnTriggerEnter(Collider coll)
{
if (coll.gameObject.GetComponent<Enemy>())
{
Enemy enemy = coll.gameObject.GetComponent<Enemy>();
if (enemy.need == objectType)
{
DoAction(enemy);
enemy.AddEffect(this);
} }
}