public static bool Init(MakeMissileTarget mmt)
 {
     if (instance)
     {
         return(true);
     }
     if (!WorldRigidbodiesContainer)
     {
         return(false);
     }
     instance     = worldRigidbodiesContainer.gameObject.AddComponent <AAMissileFiredProbe>();
     instance.mmt = mmt;
     return(true);
 }
 void Awake()
 {
     if (!AAMissileFiredProbe.Init(this))
     {
         enabled = false;
         Destroy(this);
     }
     if (Aircraft.events.ContainsKey("AircraftGenerated"))
     {
         var        e      = Aircraft.events["AircraftGenerated"];
         MethodInfo method = GetType().GetMethod(nameof(AircraftGenerated));
         delAircraftGeneratred = Delegate.CreateDelegate(e.EventHandlerType, this, method, true);
         e.AddEventHandler(null, delAircraftGeneratred);
     }
     for (int i = 0; i < allAircraftScripts.Count; i++)
     {
         IAircraftScript a = allAircraftScripts[i];
         if (a == null)
         {
             allAircraftScripts.RemoveAt(i--);
         }
     }
     for (int i = 0; i < allAircraftScripts.Count; i++)
     {
         IAircraftScript a = allAircraftScripts[i];
         if (a == null)
         {
             allAircraftScripts.RemoveAt(i--);
         }
     }
     for (int i = 0; i < aircraftLaunchedMissiles.Count; i++)
     {
         var a = aircraftLaunchedMissiles.ElementAt(i);
         if (a.Value.missileScript == null)
         {
             aircraftLaunchedMissiles.Remove(a.Key);
         }
     }
     for (int i = 0; i < samLaunchedMissiles.Count; i++)
     {
         var a = samLaunchedMissiles.ElementAt(i);
         if (a.Value.missileScript == null)
         {
             samLaunchedMissiles.Remove(a.Key);
         }
     }
 }
 private void OnDisable() => instance = null;