Exemple #1
0
        public void SpawnButtonClicked()
        {
            Cleanup();
            string key = Options.options[Options.value].text;

            System.Diagnostics.Stopwatch w = System.Diagnostics.Stopwatch.StartNew();

            for (int i = 0; i < 1000; i++)
            {
                // get or create and object from cache
                GameObject obj = SpawningPool.CreateFromCache(key);
                if (obj == null)
                {
                    Debug.LogErrorFormat("Unable to find object for key: {0}", key);
                    return;
                }
                // random position and rotation
                Vector3 pos = Random.onUnitSphere;
                obj.transform.position = pos * UnityEngine.Random.Range(-5.0f, 5.0f);
                obj.transform.rotation = Random.rotation;
            }

            w.Stop();

            UpdateResults(w.Elapsed.TotalMilliseconds);
        }
 private void SceneWasLoaded(UnityEngine.SceneManagement.Scene scene, UnityEngine.SceneManagement.LoadSceneMode mode)
 {
     if (ReturnToCacheOnLevelLoad)
     {
         SpawningPool.RecycleActiveObjects();
     }
 }
 private void Awake()
 {
     if (awake)
     {
         return;
     }
     else if (instance == null)
     {
         awake    = true;
         instance = this;
         DontDestroyOnLoad(this);
         if (Prefabs != null)
         {
             foreach (var prefab in Prefabs)
             {
                 SpawningPool.AddPrefab(prefab.name, prefab);
             }
         }
         UnityEngine.SceneManagement.SceneManager.sceneLoaded += SceneWasLoaded;
     }
     else
     {
         Object.Destroy(gameObject);
     }
 }
 private void Awake()
 {
     if (awake)
     {
         return;
     }
     else if (instance == null)
     {
         awake    = true;
         instance = this;
         DontDestroyOnLoad(this);
         if (Prefabs != null)
         {
             foreach (var prefab in Prefabs)
             {
                 SpawningPool.AddPrefab(prefab.Key, prefab.Prefab);
             }
         }
         UnityEngine.SceneManagement.SceneManager.sceneLoaded += (scene, mode) =>
         {
             SpawningPool.RecycleActiveObjects();
         };
     }
     else
     {
         Object.Destroy(gameObject);
     }
 }
Exemple #5
0
        private void Cleanup()
        {
            SpawningPool.RecycleActiveObjects();
            foreach (GameObject obj in regular)
            {
                GameObject.Destroy(obj);
            }
            regular.Clear();

            // note- to send just one object back to the cache, call SpawningPool.ReturnToCache. This is an extension method for GameObject.
        }