Exemplo n.º 1
0
    void LateUpdate()
    {
        if (AutoCull && Time.time - mLastCullingTime > CullingSpeed)
        {
            mLastCullingTime = Time.time;
            Cull(true);
        }

        delayDespawn item = null;

        for (int i = 0; i < mDealyDespawn.Count; ++i)
        {
            item = mDealyDespawn[i];
            if (item._obj == null)
            {
                mDealyDespawn.Remove(item);
                return;
            }
            if (item._ft < Time.time)
            {
                DespawnItem(item._obj);
                return;
            }
        }
    }
Exemplo n.º 2
0
    public static void Despawn(GameObject item, float t)
    {
        if (item)
        {
            SmartPool P = GetPoolByItem(item);
            if (P != null)
            {
                bool bFind = false;
                P.mDealyDespawn.Find(objItem =>
                {
                    if (objItem._obj == item)
                    {
                        objItem._ft = Mathf.Min(objItem._ft, Time.time + t);
                        bFind       = true;
                        return(true);
                    }
                    return(false);
                });

                if (!bFind)
                {
                    delayDespawn delayItem = new delayDespawn();
                    delayItem._ft  = Time.time + t;
                    delayItem._obj = item;
                    P.mDealyDespawn.Add(delayItem);
                }
            }
            else
            {
                GameObject.Destroy(item, t);
            }
        }
    }
Exemplo n.º 3
0
	public static void Despawn(GameObject item,float t)
	{
		if (item)
		{
			SmartPool P = GetPoolByItem(item);
			if (P != null)
			{
				bool bFind = false;
                P.mDealyDespawn.Find(objItem =>
                {
                    if (objItem._obj == item)
                    {
                        objItem._ft = Mathf.Min(objItem._ft, Time.time + t);
                        bFind = true;
                        return true;
                    }
                    return false;
                });
                
				if (!bFind)
				{
					delayDespawn delayItem = new delayDespawn();
					delayItem._ft = Time.time + t;
					delayItem._obj = item;
					P.mDealyDespawn.Add(delayItem);
				}
			}
			else
				GameObject.Destroy(item,t);
		}
	}