public static SpawnNotification Create(ISpawnFactory factory, GameObject spawnedObject, ISpawner spawnPoint) { if (factory == null) { throw new System.ArgumentNullException("factory"); } if (spawnedObject == null) { throw new System.ArgumentNullException("spawnedObject"); } SpawnNotification n; if (Notification.TryGetCache <SpawnNotification>(out n)) { n._factory = factory; n._spawnedObject = spawnedObject; n._spawnPoint = spawnPoint; } else { n = new SpawnNotification(factory, spawnedObject, spawnPoint); } return(n); }
public SpawnNotification(ISpawnFactory factory, GameObject spawnedObject, ISpawner spawnPoint) { if (factory == null) { throw new System.ArgumentNullException("factory"); } if (spawnedObject == null) { throw new System.ArgumentNullException("spawnedObject"); } _factory = factory; _spawnedObject = spawnedObject; _spawnPoint = spawnPoint; }
public static void SignalOnSpawnedNotification(ISpawner spawnPoint, ISpawnFactory factory, GameObject spawnedObject, IList <ISpawnerModifier> modifiers) { var spawnNotif = SpawnPointTriggeredNotification.Create(factory, spawnedObject, spawnPoint); if (modifiers != null && modifiers.Count > 0) { for (int i = 0; i < modifiers.Count; i++) { if (modifiers[i] != null) { modifiers[i].OnSpawnedNotification(spawnNotif); } } } Notification.PostNotification <SpawnPointTriggeredNotification>(spawnPoint, spawnNotif, false); Notification.Release(spawnNotif); }
internal void PlaceOnSpawn(ISpawner spawnPoint, ISpawnFactory spawnPool, GameObject spawnedObject) { if (_busy) { return; } if (this.FlagBusyOnSpawn) { _busy = true; } spawnedObject.transform.position = this.transform.position; spawnedObject.transform.rotation = this.transform.rotation; var n = SpawnPointTriggeredNotification.Create(spawnPool, spawnedObject, spawnPoint); Notification.PostNotification <SpawnPointTriggeredNotification>(this, n, false); Notification.Release(n); }
public SpawnPointTriggeredNotification(ISpawnFactory factory, GameObject spawnedObject, ISpawner spawnPoint) : base(factory, spawnedObject, spawnPoint) { }