private void Update()
        {
            _cameraMapUpdateTimer += Time.deltaTime;

            if (_cameraMapUpdateTimer > 16)
            {
                RemoveDestroyedCameras();
                _cameraMapUpdateTimer = 0;
            }

            if (_outlineResources != null && _renderers != null)
            {
                if (_updateRenderers)
                {
                    _renderers.Reset(false);
                }

                _commandBuffer.Clear();

                using (var renderer = new OutlineRenderer(_commandBuffer, BuiltinRenderTextureType.CameraTarget))
                {
                    renderer.Render(_renderers.GetList(), _outlineSettings.OutlineResources, _outlineSettings);
                }
            }
        }
Beispiel #2
0
 private void FillCommandBuffer(Camera camera, CommandBuffer cmdBuffer)
 {
     if (_renderers.Count > 0)
     {
         using (var renderer = new OutlineRenderer(cmdBuffer, _outlineResources, camera.actualRenderingPath))
         {
             renderer.Render(_renderers.GetList(), _outlineSettings, name);
         }
     }
 }
Beispiel #3
0
        private void Update()
        {
            if (_outlineResources != null && _renderers != null)
            {
                _camerasToRemove.Clear();

                if (_updateRenderers)
                {
                    _renderers.Reset(false, _layerMask);
                }

                foreach (var kvp in _cameraMap)
                {
                    var camera    = kvp.Key;
                    var cmdBuffer = kvp.Value;

                    if (camera)
                    {
                        cmdBuffer.Clear();

                        if (_renderers.Count > 0)
                        {
                            using (var renderer = new OutlineRenderer(cmdBuffer, _outlineResources, camera.actualRenderingPath))
                            {
                                renderer.Render(_renderers.GetList(), _outlineSettings, name);
                            }
                        }
                    }
                    else
                    {
                        cmdBuffer.Dispose();
                        _camerasToRemove.Add(camera);
                    }
                }

                foreach (var camera in _camerasToRemove)
                {
                    _cameraMap.Remove(camera);
                }
            }
        }