private void DestinationPointUpdated(Vector3 position) { if (Vector3.Distance(mob.Transform.position, position) <= mob.Model.AttackModel.MaxAttackDistance) { //todo проверка прямой видимости if (followController.FollowTargetUnit == attackController.AttackTargetUnit) { if (useLog) { Debug.Log($"{mob.Name} Enemy {attackController.AttackTargetUnit.Name} in attack area"); } mob.Attack(attackController.AttackTargetUnit); return; } } }
// Update is called once per frame void Update() { if (targetSelected == false && beingAttacked == false) { if (monsterBehavior.IsVisible()) { target = monsterBehavior.GetObjVisible().transform; targetSelected = true; } else { monsterBehavior.Idle(); } } else if (beingAttacked && targetSelected == false) { if (monsterBehavior.IsVisible()) { target = monsterBehavior.GetObjVisible().transform; targetSelected = true; } monsterBehavior.Find(); } else { if (target != null) { monsterBehavior.Attack(); if (!selectLayer) { gameObject.layer = 9; selectLayer = true; } } else { targetSelected = false; beingAttacked = false; } } }