Пример #1
0
    // Update is called once per frame
    void Update()
    {
        steeringUpdate = new SteeringOutput();
        //GetComponent<Kinematic>().kRotation = myRotateType.GetSteering().angular;
        //steeringUpdate.angular = myRotateType.GetSteering().angular;
        //GetComponent<Kinematic>().kVelocity = myMoveType.GetSteering().linear;
        steeringUpdate.linear = myMoveType.GetSteering().linear;

        kinematic.GetData(steeringUpdate);
    }
Пример #2
0
    void Update()
    {
        SteeringOutput steering;

        //Update position and rotation
        transform.position += linearVelocity * Time.deltaTime;
        Vector3 angularIncrement = new Vector3(0, angularVelocity * Time.deltaTime, 0);

        transform.eulerAngles += angularIncrement;

        switch (type)
        {
        case SteeringType.Pursue:
            steering = pursueAI.GetSteering();
            break;

        case SteeringType.Evade:
            steering = evadeAI.GetSteering();
            break;

        case SteeringType.FollowPath:
            steering = followAI.GetSteering();
            break;

        case SteeringType.Seek:
            steering = seekAI.GetSteering();
            break;

        case SteeringType.Flee:
            steering = fleeAI.GetSteering();
            break;

        case SteeringType.Seperation:
            steering = seperationAI.GetSteering();
            break;

        default:
            steering = seekAI.GetSteering();
            break;
        }

        linearVelocity  += steering.linear * Time.deltaTime;
        angularVelocity += steering.angular * Time.deltaTime;

        //Update kinematic reference with complex data it can't get by itself
        kinematic.GetData(steering);
    }
Пример #3
0
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Return))
        {
            door.Begin();
            Behave();
        }

        //Steering stuff
        SteeringOutput movementSteering;

        //Update position and rotation
        transform.position += linearVelocity * Time.deltaTime;
        Vector3 angularIncrement = new Vector3(0, angularVelocity * Time.deltaTime, 0);

        transform.eulerAngles += angularIncrement;
        movementSteering       = arrive.GetSteering();
        if (movementSteering != null)
        {
            linearVelocity += movementSteering.linear * Time.deltaTime;
        }
        kinematic.GetData(movementSteering);
    }
    void Update()
    {
        SteeringOutput movementSteering;

        //SteeringOutput lookSteering;
        //Update position and rotation
        transform.position += linearVelocity * Time.deltaTime;
        Vector3 angularIncrement = new Vector3(0, angularVelocity * Time.deltaTime, 0);

        transform.eulerAngles += angularIncrement;

        switch (moveType)
        {
        case SteeringType.Pursue:
            movementSteering = pursueAI.GetSteering();
            break;

        case SteeringType.Evade:
            movementSteering = evadeAI.GetSteering();
            break;

        case SteeringType.FollowPath:
            movementSteering = followAI.GetSteering();
            break;

        case SteeringType.Seek:
            movementSteering = seekAI.GetSteering();
            break;

        case SteeringType.Flee:
            movementSteering = fleeAI.GetSteering();
            break;

        case SteeringType.Seperation:
            movementSteering = seperationAI.GetSteering();
            break;

        case SteeringType.Arrive:
            movementSteering = arriveAI.GetSteering();
            break;

        case SteeringType.CollisionAvoidance:
            movementSteering = avoidAI.GetSteering();
            break;

        case SteeringType.ObstacleAvoidance:
            movementSteering = obstacleAI.GetSteering();
            break;

        default:
            movementSteering = new SteeringOutput();
            break;
        }

        if (movementSteering != null)
        {
            linearVelocity += movementSteering.linear * Time.deltaTime;
            //angularVelocity += movementSteering.angular * Time.deltaTime;
        }

        switch (lookType)
        {
        case LookType.None:
            break;

        case LookType.Align:
            lookSteering = alignAI.GetSteering();
            break;

        case LookType.Face:
            lookSteering = faceAI.GetSteering();
            break;

        case LookType.LookWhereGoing:
            lookSteering = lookAI.GetSteering();
            break;

        default:
            lookSteering = alignAI.GetSteering();
            break;
        }

        if (lookSteering != null)
        {
            angularVelocity += lookSteering.angular * Time.deltaTime;
        }
        //Update kinematic reference with complex data it can't get by itself
        kinematic.GetData(movementSteering);
        kinematic.GetData(lookSteering);
    }