void FixedUpdate() { Vector3 accel = Vector3.zero; accel += cohesion.GetSteering(sensor.targets) * cohesionWeight; accel += separation.GetSteering(sensor.targets) * separationWeight; accel += velocityMatch.GetSteering(sensor.targets) * velocityMatchWeight; if (accel.magnitude < 0.005f) { accel = wander.GetSteering(); } steeringBasics.Steer(accel); steeringBasics.LookWhereYoureGoing(); }
void LateUpdate() { Vector3 targetPos; Vector3 offsetAccel = offsetPursuit.GetSteering(target, offset, out targetPos); Vector3 sepAccel = separation.GetSteering(sensor.targets); steeringBasics.Steer(offsetAccel + sepAccel); /* If we are still arriving then look where we are going, else look the same direction as our formation target */ if (Vector3.Distance(transform.position, targetPos) > groupLookDist) { steeringBasics.LookWhereYoureGoing(); } else { steeringBasics.LookAtDirection(target.Rotation); } }