Ejemplo n.º 1
0
    // 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();
    }
Ejemplo n.º 2
0
    void transitionToStateA()
    {
        print("Transition to state A");
        text.text = "State: A";

        state = State.A;

        aiSteer.setWaypoint(waypointA);

        aiSteer.useNavMeshPathPlanning = true;
    }
Ejemplo n.º 3
0
    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;
    }