public override void Update() { SteeringOutput myMovement = path.GetSteering(); LookWhereGoing look = new LookWhereGoing(); look.target = path.target; look.ai = this; SteeringOutput mySteering = look.GetSteering(); linearVelocity += myMovement.linear * Time.deltaTime; transform.position += linearVelocity * Time.deltaTime; if (linearVelocity.magnitude > maxSpeed) { linearVelocity.Normalize(); linearVelocity *= maxSpeed; } if (mySteering != null) { angularVelocity += mySteering.angular * Time.deltaTime; } if (float.IsNaN(angularVelocity)) { angularVelocity = 0; } transform.eulerAngles += new Vector3(0, angularVelocity * Time.deltaTime, 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); }
// Update is called once per frame public override void Update() { mySteering = new SteeringOutput(); if (myRotateType.GetSteering() != null) { mySteering.angular = myRotateType.GetSteering().angular; } mySteering.linear = myMoveType.GetSteering().linear; base.Update(); }
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); }
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); }