コード例 #1
0
        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);
                    }
                }
            }
        }
コード例 #2
0
 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;
         }
     }
 }
コード例 #3
0
 public DecalGroup(EDecalRenderMode renderMode, Mesh decalUnitCube, string name, int maxDecals)
 {
     _decalRenderer = new DeferredDecalRenderer(renderMode, decalUnitCube, name, 0);
     _roDecals      = new ReadOnlyCollection <Decal>(_decals);
     _maxDecals     = maxDecals;
 }
コード例 #4
0
 private void OnEnable()
 {
     myTarget = (DeferredDecalRenderer)target;
 }