// 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(); }
// 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(); }
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; } }
// 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; } }