コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }