示例#1
0
        void CreateNewSession()
        {
            if (AssetDatabase.Contains(m_Settings))
            {
                m_Settings      = CreateInstance <SdfBakerSettings>();
                m_Settings.name = "None";
            }
            else
            {
                m_Settings.ResetToDefault();
            }
            m_BakedSDF = null;
            if (m_MeshPreview != null)
            {
                m_MeshPreview.Dispose();
                m_MeshPreview = null;
            }

            if (m_TexturePreview != null)
            {
                m_TexturePreview.OnDisable();
                m_TexturePreview = null;
            }

            m_RefreshMeshPreview = false;
            if (m_Baker != null)
            {
                m_Baker.Dispose();
                m_Baker = null;
            }
        }
示例#2
0
 private void OnEnable()
 {
     titleContent = Contents.title;
     minSize      = new Vector2(300.0f, 400.0f);
     if (m_Settings == null)
     {
         m_Settings      = CreateInstance <SdfBakerSettings>();
         m_Settings.name = "None";
     }
     if (m_TexturePreview == null)
     {
         m_TexturePreview = CreateInstance <Texture3DPreview>();
     }
     m_TexturePreview.OnEnable();
     if (m_BakedSDF != null)
     {
         m_TexturePreview.Texture = m_BakedSDF;
     }
     if (m_MeshPreview == null)
     {
         m_MeshPreview = new SdfBakerPreview(mesh);                        // Not sure if necessary
     }
     Undo.undoRedoPerformed += OnUndoRedoPerformed;
     PrefabUtility.prefabInstanceUpdated += OnPrefabInstanceUpdated;
     Selection.selectionChanged          += OnSelectionChanged;
 }
示例#3
0
 internal void LoadSettings(SdfBakerSettings newSettings)
 {
     m_Settings      = newSettings;
     m_ActualBoxSize = SnapBoxToVoxels();
     if (m_TexturePreview != null)
     {
         m_TexturePreview.OnDisable();
     }
     m_TexturePreview = CreateInstance <Texture3DPreview>();
     if (m_MeshPreview != null)
     {
         m_MeshPreview.Dispose();
     }
     m_MeshPreview = new SdfBakerPreview(selectedMesh);
     m_BakedSDF    = null;
 }
示例#4
0
 private void UpdateTexture3dPreview()
 {
     if (m_BakedSDF)
     {
         if (m_TexturePreview == null)
         {
             m_TexturePreview = CreateInstance <Texture3DPreview>();
         }
         m_TexturePreview.Texture = m_BakedSDF;
         GUILayout.BeginHorizontal();
         m_TexturePreview.OnPreviewSettings(new Object[] { m_BakedSDF });
         GUILayout.EndHorizontal();
         Rect rect = GUILayoutUtility.GetRect(100, 2000, 100, 2000, GUIStyle.none);
         m_TexturePreview.OnPreviewGUI(rect, GUIStyle.none);
         EditorGUI.DropShadowLabel(rect, m_TexturePreview.GetInfoString());
     }
 }
示例#5
0
        public void OnDisable()
        {
            m_MeshPreview?.Dispose();
            m_Baker?.Dispose();
            if (m_BakedSDF)
            {
                m_BakedSDF.Release();
            }

            if (m_TexturePreview)
            {
                m_TexturePreview.OnDisable();
                m_TexturePreview = null;
            }
            Undo.undoRedoPerformed -= OnUndoRedoPerformed;
            PrefabUtility.prefabInstanceUpdated -= OnPrefabInstanceUpdated;
            Selection.selectionChanged          -= OnSelectionChanged;
        }