예제 #1
0
        public override MovementOutput GetMovement()
        {
            DesiredOutput = DesiredMovement.GetMovement();

            DesiredVelocity = this.Character.velocity + DesiredOutput.linear;

            if (DesiredVelocity.magnitude > MaxSpeed)
            {
                DesiredVelocity.Normalize();
                DesiredVelocity *= MaxSpeed;
            }
            samples.Add(DesiredVelocity);

            for (int i = 0; i < numSamples; i++)
            {
                angle          = Random.Range(0, MathConstants.MATH_2PI);
                magnitude      = Random.Range(0, MaxSpeed);
                velocitySample = MathHelper.ConvertOrientationToVector(angle) * magnitude;
                samples.Add(velocitySample);
            }
            base.Target.velocity = GetBestSample(samples, DesiredVelocity);
            return(base.GetMovement());
        }