Exemplo n.º 1
0
 private static void Store(RendererHolder renderer)
 {
     renderer.Filter.sharedMesh = null;
     renderer.Tr.SetParent(null);
     renderer.Tr.gameObject.SetActive(false);
     _renderers.Enqueue(renderer);
 }
Exemplo n.º 2
0
 private void OnDestroy()
 {
     if (_holder != null)
     {
         Store(_holder);
         _holder = null;
     }
 }
Exemplo n.º 3
0
 public void OnPoolDespawned()
 {
     Store(_holder);
     if (_trailMesh != null)
     {
         _trailMesh.Clear();
         _trailMesh = null;
     }
     _holder = null;
 }
Exemplo n.º 4
0
        private void Setup()
        {
            if (_holder == null)
            {
                _holder = GetRenderer(this);
            }
            SetLastPosition();
            _trailMesh                = new Mesh();
            _trailMesh.name           = name + "TrailMesh";
            _holder.Filter.sharedMesh = _trailMesh;

            _minVertexDistanceSqr = _minVertexDistance * _minVertexDistance;
            _maxVertexDistanceSqr = _maxVertexDistance * _maxVertexDistance;
        }
Exemplo n.º 5
0
        private static RendererHolder GetRenderer(MeleeWeaponTrail trail)
        {
            RendererHolder renderer;

            if (_renderers.Count > 0)
            {
                renderer = _renderers.Dequeue();
            }
            else
            {
                renderer = new RendererHolder();
            }
            if (renderer.Tr == null)
            {
                renderer = new RendererHolder();
            }
            renderer.Tr.gameObject.SetActive(true);
            renderer.Tr.SetParentResetPos(trail.transform.root);
            renderer.Tr.gameObject.layer = trail.gameObject.layer;
            renderer.Renderer.material   = trail._material;
            return(renderer);
        }