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); } } }
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); } } }