// Update is called once per frame void Update() { switch (state) { case AIState.Patrol: if (FoundPrey()) { Chase(); } break; case AIState.Chase: //ainav.mecanimInputForwardSpeedCap = 1.0f; ainav.setWaypoint(prey.transform.position); break; default: break; } //Debug.Log(prey.GetComponent<NavMeshAgent>().velocity); /*if (ainav.waypointsComplete() && state != AIState.Chase) * { * ChangeState(); * }*/ // EventCheck(); }
void transitionToStateA() { print("Transition to state A"); text.text = "State: A"; state = State.A; aiSteer.setWaypoint(waypointA); aiSteer.useNavMeshPathPlanning = true; }
void transitionToStateC() { print("Transition to state C"); text.text = "State: C"; state = State.C; //aiSteer.setWaypoints(waypointC); GameObject target = GameObject.Find("NPC_1"); float d = Vector3.Distance(this.transform.position, target.transform.position); Vector3 targetPosition = target.transform.position + target.transform.forward * (float)((target.GetComponent <Rigidbody>().velocity.magnitude) * System.Math.Sqrt(d)); aiSteer.setWaypoint(targetPosition); //aiSteer.clearWaypoints(); aiSteer.useNavMeshPathPlanning = true; }