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); }
private void SignalSpawned(SpawnedObjectController obj, ISpawner spawnPoint) { if (obj == null) { return; } var n = SpawnNotification.Create(this, obj.gameObject, spawnPoint); obj.gameObject.BroadcastMessage(SPSpawnConstants.MSG_ONSPAWN, n, SendMessageOptions.DontRequireReceiver); Notification.PostNotification(obj, n, false); Notification.PostNotification(this, n, false); Notification.Release(n); }