public void SetDestination(Transform target) { if (bnIsDead) { return; } if (targetPosition != target.position) { transform.LookAt(target); targetPosition = target.position; navigationAgent.updatePosition = true; navigationAgent.SetDestination(targetPosition); //ExecuteAnimation("Walking", "Dancing", "Looking"); animationPersonBehavior = AnimationPersonBehavior.Walking; } }
public void Update() { Debug.DrawLine(targetPosition, transform.position, Color.green); if (bnIsDead) { // Stop the person movement StopDestination(); return; } FindPlayer(distance); RaycastHit hit2; if (Physics.Raycast(transform.position, transform.forward, out hit2, 1f)) { //Debug.Log("WAYPOINT"); if (hit2.transform.tag == "Waypoint") { StopDestination(); animationPersonBehavior = AnimationPersonBehavior.Dancing; } } if (animationPersonBehavior == AnimationPersonBehavior.Dancing) { ExecuteAnimation("Dancing", "Walking", "Looking"); } else if (animationPersonBehavior == AnimationPersonBehavior.Looking) { ExecuteAnimation("Looking", "Walking", "Dancing"); } else if (animationPersonBehavior == AnimationPersonBehavior.Walking) { ExecuteAnimation("Walking", "Dancing", "Looking"); } }
public bool FindPlayer(float dist) { //switch (typePersonBehavior) //{ // case TypePersonBehavior.Normal: // sign.color = Color.white; // break; // case TypePersonBehavior.Target: // sign.color = Color.green; // break; // case TypePersonBehavior.Stalker: // sign.color = Color.red; // break; //} bool founded = false; RaycastHit hit1; if (Physics.Raycast(transform.position, transform.forward, out hit1, dist)) { if (hit1.transform.tag == "Player") { transform.Rotate(Vector3.up, 180f); //navigationAgent.updatePosition = false; StopDestination(); //ExecuteAnimation("Looking", "Walking", "Dancing"); animationPersonBehavior = AnimationPersonBehavior.Looking; founded = true; } } return(founded); }