Exemple #1
0
        public void InitPool()
        {
            // 최초의 atkCol 초기화
            atkCols = new Queue <AttackCollision> ();
            atkCol.Init(this);
            atkCols.Enqueue(atkCol);

            // 원, 근거리 여부에 따라 추가 atkCol 생성
            int poolSize = (int)atkCol.PoolSize;

            for (int i = 0; i < poolSize; i++)
            {
                AttackCollision col = Instantiate(atkCol) as AttackCollision;
                col.transform.parent = this.transform;
                col.Init(this);
                atkCols.Enqueue(col);
            }
            Debug.Log(atkCols.Count);
        }
Exemple #2
0
 // 공격 시 호출
 public AttackCollision GetAtkCol()
 {
     // 만약 pool에 남아 있는 것이 없을 경우
     if (atkCols.Count == 0)
     {
         // 새롭게 생성
         AttackCollision col = Instantiate(atkCol) as AttackCollision;
         col.Init(this);
         // 부모에게 분리
         col.transform.parent = null;
         return(col);
     }
     else
     {
         // 기존 있는 것 반환
         AttackCollision col = atkCols.Dequeue();
         // 부모에게 분리
         col.transform.parent = null;
         return(col);
     }
 }
Exemple #3
0
 // 공격 종료 시
 public void ReturnToPool(AttackCollision atkCol)
 {
     // 다시 부모 돌려주기
     atkCol.transform.parent = this.transform;
     atkCols.Enqueue(atkCol);
 }