static void SetupEditorDecalPreview() { if (editorDecals != null) { editorDecals.RemoveAllCameras(); } else { var go = GameObject.CreatePrimitive(PrimitiveType.Cube); go.hideFlags = HideFlags.HideAndDontSave; var mesh = go.GetComponent <MeshFilter>().sharedMesh; GameObject.DestroyImmediate(go); editorDecals = new DeferredDecalRenderer(EDecalRenderMode.Unlit, mesh, "Editor Decals", 0); } if (editorDecals != null) { Camera[] cameras = FindObjectsOfType <Camera>(); foreach (var c in cameras) { if (!c.CompareTag(Tags.UICamera)) { editorDecals.AddCamera(c); } } } }
public void Dispose() { if (!_disposed) { _disposed = true; if (_decalRenderer != null) { _decalRenderer.RemoveAllCameras(); _decalRenderer = null; } if (_decals != null) { while (_decals.Count > 0) { _decals[0].Dispose(); } _decals.Clear(); _decals = null; } } }
public DecalGroup(EDecalRenderMode renderMode, Mesh decalUnitCube, string name, int maxDecals) { _decalRenderer = new DeferredDecalRenderer(renderMode, decalUnitCube, name, 0); _roDecals = new ReadOnlyCollection <Decal>(_decals); _maxDecals = maxDecals; }
private void OnEnable() { myTarget = (DeferredDecalRenderer)target; }