Пример #1
0
        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();
        }
Пример #2
0
        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);
            }
        }