Beispiel #1
0
 public override void Execute(AIBrain brain)
 {
     brain.CeaseFire();
     if (brain.extrapolatedPlayerPosition.HasValue && brain.lastKnownPlayerVelocity.HasValue)
     {
         brain.LookAt(brain.extrapolatedPlayerPosition.Value + brain.lastKnownPlayerVelocity.Value, true);
     }
     brain.Go();
 }
Beispiel #2
0
 public override void Execute(AIBrain brain)
 {
     if (brain.lastKnownPlayerVelocity.HasValue)
     {
         brain.LookAt(brain.transform.position + brain.lastKnownPlayerVelocity.Value);
     }
     brain.Go();
     brain.CeaseFire();
 }
Beispiel #3
0
        public override void Execute(AIBrain brain)
        {
            Vector3?hitNormal;
            Vector3?hitPos = brain.ObstacleAhead(lookAhead, out hitNormal);

            if (hitPos.HasValue && hitNormal.HasValue)
            {
                brain.LookAt(hitPos.Value + hitNormal.Value.normalized * normalMultiplier, true);
            }
        }
 public override void Execute(AIBrain brain)
 {
     brain.Coast();
     if (brain.extrapolatedPlayerPosition.HasValue && brain.lastKnownPlayerVelocity.HasValue)
     {
         float lookAheadSeconds = (brain.extrapolatedPlayerPosition.Value - brain.transform.position).magnitude / brain.ship.weapon.projectileSpeed;
         brain.LookAt(brain.extrapolatedPlayerPosition.Value + brain.lastKnownPlayerVelocity.Value * lookAheadSeconds);
         brain.Fire();
     }
 }
 public static void LookRandomDirection(this AIBrain brain)
 {
     brain.LookAt(brain.transform.position + Random.onUnitSphere.SetY(0f).normalized * 50f);
 }
        public static void WanderAim(this AIBrain brain, float circleDistance, float circleRadius)
        {
            Vector3 target = brain.transform.position + brain.transform.forward * circleDistance + Random.onUnitSphere.SetY(0f).normalized *circleRadius;

            brain.LookAt(target);
        }