public override void Update() { agent.SetDestination(target.transform.position); distance = Vector3.Distance(npc.transform.position, target.transform.position); if (distance < 5f) { anim.SetTrigger("isWalking"); agent.speed = 3f; } if (distance < 1.25f) { nextState = new NpcKill(npc, agent, anim); stage = EVENT.EXIT; } if (CanBeseen()) { nextState = new NpcHide(npc, agent, anim); stage = EVENT.EXIT; } }
public override void Update() { Enemy(); pursuer = GetTarget(); Vector3 direction = (npc.transform.position - pursuer.transform.position).normalized; if (Vector3.Distance(npc.transform.position, pursuer.transform.position) < 20) { agent.SetDestination(direction + agent.transform.position); } if (Vector3.Distance(npc.transform.position, pursuer.transform.position) >= 20 && activated) { Vector3 relativePos = pursuer.transform.position - npc.transform.position; Quaternion rotation = Quaternion.LookRotation(relativePos, Vector3.up); npc.transform.rotation = rotation; anim.SetTrigger("isIdle"); anim.ResetTrigger("isRunning"); agent.isStopped = true; FunctionTimer.Create(() => nextState = new NpcKill(npc, agent, anim), 3.5f); FunctionTimer.Create(() => stage = EVENT.EXIT, 3.5f); activated = false; } }