Exemplo n.º 1
0
 /// <summary>
 /// 创建对象
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="name"></param>
 /// <returns></returns>
 public T CreateObj <T>(string name) where T : MGFObject
 {
     Assert.IsTrue(rcDic.ContainsKey(name));
     if (rcDic[name].Count > 0)
     {
         IRecycleAble ls = rcDic[name].Dequeue();
         return((T)ls);
     }
     else
     {
         throw new Exception("no obj exist!!!");
     }
 }
    private void CreateBullet()
    {
        IRecycleAble         ra = Bullet.GetComponent <Bullet>();
        Queue <IRecycleAble> q  = new Queue <IRecycleAble>();

        for (int i = 0; i < ra.InitNum(); i++)
        {
            Bullet bt = Instantiate(Bullet, m_RecyclePoint.ToVector3(), Quaternion.identity).GetComponent <Bullet>();
            bt.IsCollisionAble = false;
            q.Enqueue(bt);
        }
        m_Op.AddNewObj(ra.RecycleName(), q);
    }
Exemplo n.º 3
0
 /// <summary>
 /// 回收对象
 /// </summary>
 /// <param name="name"></param>
 /// <param name="rc"></param>
 public void DestoryObj(string name, IRecycleAble rc)
 {
     Assert.IsTrue(rc != null);
     Assert.IsTrue(rcDic.ContainsKey(name));
     rcDic[name].Enqueue(rc);
 }