Esempio n. 1
0
 void CheckDisposeObject(poolObject poolObject)
 {
     if (poolObject.transform.position.x < -defaultSpawnPos.x)
     {
         poolObject.Dispose();
         poolObject.transform.position = Vector3.one * 1000;
     }
 }
        public ObjectInstance(GameObject objectInstance)
        {
            gameObject = objectInstance;
            transform  = gameObject.transform;
            gameObject.SetActive(false);

            if (gameObject.GetComponent <poolObject>())
            {
                hasPoolObjectComponent = true;
                poolObjectScript       = gameObject.GetComponent <poolObject>();
            }
        }
Esempio n. 3
0
 void Configure()
 {
     targetAspect = targetAspectRatio.x / targetAspectRatio.y;
     poolobjects  = new poolObject[poolSize];
     for (int i = 0; i < poolobjects.Length; i++)
     {
         GameObject go = Instantiate(Prefab) as GameObject;
         Transform  t  = go.transform;
         t.SetParent(transform);
         t.position     = Vector3.one * 1000;
         poolobjects[i] = new poolObject(t);
     }
     if (spawnImmediate)
     {
         SpawnImediate();
     }
 }
Esempio n. 4
0
 public void Recycle(Enemy enemy)
 {
     enemy.gameObject.SetActive(false);
     if (pool.Count > poolSize)  //删掉多余
     {
         int id = enemy.gameObject.GetHashCode();
         for (int i = 0; i < pool.Count; i++)
         {
             poolObject pObj = pool[i];
             if (id == pObj.hashID)
             {
                 pool.Remove(pObj);
                 break;
             }
         }
         Destroy(enemy.gameObject);
     }
 }