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(); }
public override void Execute(AIBrain brain) { if (brain.lastKnownPlayerVelocity.HasValue) { brain.LookAt(brain.transform.position + brain.lastKnownPlayerVelocity.Value); } brain.Go(); brain.CeaseFire(); }
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); }