Esempio n. 1
0
 // Update is called once per frame
 protected override void Update()
 {
     steeringUpdate         = new SteeringOutput();
     steeringUpdate.angular = myRotateType.getSteering().angular;
     steeringUpdate.linear  = myMoveType.getSteering().linear;
     base.Update();
 }
Esempio n. 2
0
    // Update is called once per frame
    protected override void Update()
    {
        steeringUpdate = new SteeringOutput();
        if (seeking)
        {
            steeringUpdate.linear = moveTypeSeek.getSteering().linear;
        }
        else if (fleeing)
        {
            steeringUpdate.linear = moveTypeFlee.getSteering().linear;
        }
        else if (evading)
        {
            steeringUpdate.linear = moveTypeEvade.getSteering().linear;
        }
        else
        {
            steeringUpdate.linear = moveTypeAvoid.getSteering().linear;
        }

        steeringUpdate.angular = facing ?
                                 rotateTypeFace.getSteering().angular :
                                 rotateTypeLWYG.getSteering().angular;
        base.Update();
    }
    // Update is called once per frame
    protected override void Update()
    {
        //transform.position += linearVelocity * Time.deltaTime;

        steeringUpdate         = new SteeringOutput();
        steeringUpdate.angular = m_Rotate.getSteering().angular;
        steeringUpdate.linear  = m_Move.getSteering().linear;

        base.Update();
    }
Esempio n. 4
0
    public void createLook(SteeringOutput steering)
    {
        LookWhereYoureGoing myAlign = new LookWhereYoureGoing
        {
            character = this,
            target    = myTarget
        };

        steering = myAlign.getSteering();
        if (steering != null)
        {
            linearVelocity  += steering.linear * Time.deltaTime;
            angularVelocity += steering.angular * Time.deltaTime;
        }
    }
Esempio n. 5
0
    // Update is called once per frame
    void Update()
    {
        myTarget = GameObject.Find("Player");
        // update my position and rotation
        this.transform.position += linearVelocity * Time.deltaTime;
        Vector3 v = new Vector3(0, angularVelocity, 0); // TODO - don't make a new Vector3 every update you silly person

        this.transform.eulerAngles += v * Time.deltaTime;

        // update linear and angular velocities
        SteeringOutput steering = new SteeringOutput();

        //TODO add switch statement for different move type (6 behaviours)

        if (flee)
        {
            Seek mySeek = new Seek
            {
                character = this,
                target    = myTarget
            };
            mySeek.flee      = true;
            steering         = mySeek.getSteering();
            linearVelocity  += steering.linear * Time.deltaTime;
            angularVelocity += steering.angular * Time.deltaTime;
        }
        else if (seek)
        {
            Seek mySeek = new Seek
            {
                character = this,
                target    = myTarget
            };
            steering         = mySeek.getSteering();
            linearVelocity  += steering.linear * Time.deltaTime;
            angularVelocity += steering.angular * Time.deltaTime;
        }

        else if (arrive)
        {
            Arrive myArrive = new Arrive
            {
                character = this,
                target    = myTarget
            };
            steering = myArrive.getSteering();
            if (steering != null)
            {
                linearVelocity  += steering.linear * Time.deltaTime;
                angularVelocity += steering.angular * Time.deltaTime;
            }
            else
            {
                linearVelocity = Vector3.zero;
            }
        }

        else if (face)
        {
            Face myAlign = new Face
            {
                character = this,
                target    = myTarget
            };
            steering = myAlign.getSteering();
            if (steering != null)
            {
                linearVelocity  += steering.linear * Time.deltaTime;
                angularVelocity += steering.angular * Time.deltaTime;
            }
        }
        else if (look)
        {
            LookWhereYoureGoing myAlign = new LookWhereYoureGoing
            {
                character = this,
                target    = myTarget
            };
            steering = myAlign.getSteering();
            if (steering != null)
            {
                linearVelocity  += steering.linear * Time.deltaTime;
                angularVelocity += steering.angular * Time.deltaTime;
            }
        }
        else if (align)
        {
            Align myAlign = new Align
            {
                character = this,
                target    = myTarget
            };
            steering = myAlign.getSteering();
            if (steering != null)
            {
                linearVelocity  += steering.linear * Time.deltaTime;
                angularVelocity += steering.angular * Time.deltaTime;
            }
        }
    }
    // Update is called once per frame
    void Update()
    {
        //update position and rotation
        transform.position    += linearVelocity * Time.deltaTime;
        transform.eulerAngles += new Vector3(0, angularVelocity * Time.deltaTime, 0);

        //update linear and angular velocities
        switch (mode)
        {
        case 0:
            Seek mySeek = new Seek();
            mySeek.character = this;
            mySeek.target    = target;
            steering         = mySeek.getSteering();
            linearVelocity  += steering.linear * Time.deltaTime;
            angularVelocity += steering.angular * Time.deltaTime;
            Debug.Log("Seek");
            break;

        case 1:
            Flee myFlee = new Flee();
            myFlee.character = this;
            myFlee.target    = target;
            steering         = myFlee.getSteering();
            linearVelocity  += steering.linear * Time.deltaTime;
            angularVelocity += steering.angular * Time.deltaTime;
            Debug.Log("Flee");
            break;

        case 2:
            Arrive myArrive = new Arrive();
            myArrive.character = this;
            myArrive.target    = target;
            steering           = myArrive.getSteering();
            linearVelocity    += steering.linear * Time.deltaTime;
            angularVelocity   += steering.angular * Time.deltaTime;
            Debug.Log("Arrive");
            break;

        case 3:
            Align myAlign = new Align();
            myAlign.character = this;
            myAlign.target    = target;
            steering          = myAlign.getSteering();
            linearVelocity   += steering.linear * Time.deltaTime;
            angularVelocity  += steering.angular * Time.deltaTime;
            Debug.Log("Align");
            break;

        case 4:
            Face myFace = new Face();
            myFace.character = this;
            myFace.target    = target;
            steering         = myFace.getSteering();
            linearVelocity  += steering.linear * Time.deltaTime;
            angularVelocity += steering.angular * Time.deltaTime;
            Debug.Log("Face");
            break;

        case 5:
            LookWhereYoureGoing myLook = new LookWhereYoureGoing();
            myLook.character = this;
            myLook.target    = target;
            steering         = myLook.getSteering();
            linearVelocity  += steering.linear * Time.deltaTime;
            angularVelocity += steering.angular * Time.deltaTime;
            Debug.Log("Look");
            break;
        }
    }