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); } } }
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); } } }
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); } } }