예제 #1
0
    public void ReturnTrailRenderer(TrailRenderer renderer)
    {
        if (renderer != null && _ActiveTrails != null && _ActiveTrails.ContainsKey(renderer))
        {
            eTRAIL_LENGTH length = _ActiveTrails[renderer];
            if (_TrailPool[length].Count < _Capacity[(int)length])
            {
                _TrailPool[length].Add(renderer);
                //_ActiveTrails.Remove(renderer);
                //EB.Debug.Log("Trail "+ length.ToString() +" Returned to Pool");
            }
            else
            {
                renderer.DestroyTrail();

                //EB.Debug.Log("Trail "+ length.ToString() +" Returned. Pool Maxed, Destroy");
            }
            _ActiveTrails.Remove(renderer);
        }
    }
예제 #2
0
    public TrailRenderer GetTrailRenderer(eTRAIL_LENGTH length)
    {
        TrailRenderer trail    = null;
        int           vertSize = _VertSizeMap[(int)length];

        if (_TrailPool != null && _TrailPool[length].Count > 0)
        {
            trail = _TrailPool[length][0];
            _TrailPool[length].RemoveAt(0);
            //EB.Debug.Log("Trail "+ length.ToString() +" Requested - Give from pool Capacity: " + _TrailPool[length].Count);
        }
        else
        {
            trail = new TrailRenderer(vertSize, parent);
            //EB.Debug.Log("Trail "+ length.ToString() +" Requested - New One Created");
        }
        _ActiveTrails.Add(trail, length);
        //trail.SetupTrail();
        return(trail);
    }