Exemple #1
0
        public override void DoState(BasicEnemy enemy, List <SteeringEffect> steerings, CharacterController2D controller, List <Effect> effects)
        {
            var currentSteering = Vector2.zero;
            var totalWeight     = 0.0f;

            foreach (SteeringEffect s in steerings)
            {
                var curWeight = s.GetWeight(enemy, steerings.Count);
                if (s == this)
                {
                    curWeight *= 2;
                }
                currentSteering += s.GetSteering(enemy, currentSteering) * curWeight;
                totalWeight     += curWeight;
            }

            currentSteering /= totalWeight;

            enemy.velocity = currentSteering * Time.deltaTime;

            enemy.ProbablisticState();

            if (player == null)
            {
                enemy.ChangeToDefaultState();
            }

            controller.move(enemy.velocity);
        }