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 Update() { if (_outlineResources != null && _renderers != null) { _camerasToRemove.Clear(); if (_updateRenderers) { _renderers.Reset(false, _ignoreLayerMask); } foreach (var kvp in _cameraMap) { var camera = kvp.Key; var cmdBuffer = kvp.Value; if (camera) { cmdBuffer.Clear(); FillCommandBuffer(camera, cmdBuffer); } else { cmdBuffer.Dispose(); _camerasToRemove.Add(camera); } } foreach (var camera in _camerasToRemove) { _cameraMap.Remove(camera); } } }
private void CreateRenderersIfNeeded() { if (_renderers == null) { _renderers = new OutlineRendererCollection(gameObject); _renderers.Reset(true); } }
private void CreateRenderersIfNeeded() { if (_renderers == null) { _renderers = new OutlineRendererCollection(gameObject); _renderers.Reset(false, _layerMask); } }
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); } } }
/// <inheritdoc/> public void Add(GameObject go) { if (go is null) { throw new ArgumentNullException(nameof(go)); } if (!_outlineObjects.ContainsKey(go)) { var renderers = new OutlineRendererCollection(go); renderers.Reset(false, _parentCollection.IgnoreLayerMask); _outlineObjects.Add(go, renderers); } }
/// <summary> /// Adds a new object to the layer. /// </summary> /// <exception cref="ArgumentNullException">Thrown if <paramref name="go"/> is <see langword="null"/>.</exception> public void Add(GameObject go, int ignoreLayerMask) { if (ReferenceEquals(go, null)) { throw new ArgumentNullException("go"); } if (!_outlineObjects.ContainsKey(go)) { var renderers = new OutlineRendererCollection(go); renderers.Reset(false, ignoreLayerMask); _outlineObjects.Add(go, renderers); } }
/// <summary> /// Updates renderer list. /// </summary> /// <seealso cref="OutlineRenderers"/> public void UpdateRenderers() { _renderers?.Reset(false, _layerMask); }