Beispiel #1
0
 protected override void OnAliveUpdate()
 {
     base.OnAliveUpdate();
     if (Focus == null)
     {
         // блуждание
         Wandering(Time.deltaTime);
         // поиск цели если монстр агресивный
         if (_aggressive)
         {
             FindEnemy();
         }
     }
     else
     {
         var distance = Vector3.Distance(Focus.InteractionTransform.position, transform.position);
         if (distance > _viewDistance || !Focus.HasInteract)
         {
             // если цель далеко перестаём приследовать
             RemoveFocus();
         }
         else if (distance <= Focus.Radius)
         {
             // действие если цель взоне взаимодействия
             Focus.Interact(gameObject);
         }
     }
 }
Beispiel #2
0
 protected override void OnAliveUpdate()
 {
     base.OnAliveUpdate();
     if (Focus == null)
     {
         return;
     }
     if (!Focus.HasInteract)
     {
         // если с объектом нельзя больше работать, снимаем фокус
         RemoveFocus();
     }
     else
     {
         var distance = Vector3.Distance(Focus.InteractionTransform.position, transform.position);
         if (distance <= Focus.Radius)
         {
             // действие, если цель в зоне взаимодействия
             Focus.Interact(gameObject);
         }
     }
 }