private new void OnDisable() { base.OnDisable(); if (m_UVPreview != null) { m_UVPreview.Release(); } m_UVPreview = null; }
void OnDisable() { if (m_GameObjectInspector) { DestroyImmediate(m_GameObjectInspector); } m_GameObjectInspector = null; if (m_UVPreview != null) { m_UVPreview.Release(); } m_UVPreview = null; }
void OnEnable() { System.Type gameObjectorInspectorType = typeof(Editor).Assembly.GetType("UnityEditor.GameObjectInspector"); m_OnHeaderGUI = gameObjectorInspectorType.GetMethod("OnHeaderGUI", BindingFlags.NonPublic | BindingFlags.Instance); m_GameObjectInspector = Editor.CreateEditor(target, gameObjectorInspectorType); m_UVPreview = new UVPreview(); if (target) { m_UVPreview.Add((GameObject)target, true); } m_Textures = CollectTextures((GameObject)target); m_TexContent = new GUIContent("贴图"); Renderer[] renderers = ((GameObject)target).GetComponentsInChildren <Renderer>(); m_RendersCount = renderers.Length; }
public override void DrawPreview(Rect previewArea) { GUI.Box(new Rect(previewArea.x, previewArea.y, previewArea.width, 17), string.Empty, GUI.skin.FindStyle("toolbar")); m_PreviewMode = GUI.Toolbar(new Rect(previewArea.x + 5, previewArea.y, 50 * 4, 17), m_PreviewMode, m_PreviewModeDesc, GUI.skin.FindStyle("toolbarbutton")); if (m_PreviewMode != 0) { m_UvColor = EditorGUI.ColorField( new Rect(previewArea.x + previewArea.width - 50, previewArea.y + 2, 40, 13), m_UvColor); if (GUI.Button(new Rect(previewArea.x + previewArea.width - 120, previewArea.y, 70, 17), m_TexContent, GUI.skin.FindStyle("ToolbarDropDown"))) { DropDownTextures(new Rect(previewArea.x + previewArea.width - 120, previewArea.y, 70, 17)); } if (GUI.Button(new Rect(previewArea.x + previewArea.width - 190, previewArea.y, 70, 17), "光照贴图", GUI.skin.FindStyle("ToolbarDropDown"))) { DropDownLightMaps(new Rect(previewArea.x + previewArea.width - 120, previewArea.y, 70, 17)); } m_DisplayVertexColor = GUI.Toggle(new Rect(previewArea.x + previewArea.width - 240, previewArea.y, 50, 17), m_DisplayVertexColor, m_VertexColorContent, GUI.skin.FindStyle("toolbarbutton")); if (GUI.Button(new Rect(previewArea.x + previewArea.width - 290, previewArea.y, 50, 17), m_SaveContent, GUI.skin.FindStyle("toolbarbutton"))) { SaveUV(); } } Rect previewRect = new Rect(previewArea.x, previewArea.y + 17, previewArea.width, previewArea.height - 17); if (m_PreviewMode == 0) { m_GameObjectInspector.DrawPreview(previewRect); } else { m_OffsetScale = UVPreview.DrawUV(previewRect, m_OffsetScale, (GameObject)target, m_PreviewMode - 1, m_DisplayLightMap, m_CurrentLightMapIndex, m_UvColor, m_CurrentTexture, m_DisplayVertexColor); } }
private void SaveUV() { string path = EditorUtility.SaveFilePanel("保存UV", "", "", "png"); if (string.IsNullOrEmpty(path)) { return; } var result = UVPreview.RenderUV((GameObject)target, m_PreviewMode - 1, m_UvColor); byte[] buffer = result.EncodeToPNG(); System.IO.File.WriteAllBytes(path, buffer); path = FileUtil.GetProjectRelativePath(path); if (string.IsNullOrEmpty(path) == false) { AssetDatabase.ImportAsset(path); } }
private new void OnEnable() { base.OnEnable(); if (Application.isPlaying) { return; } try { m_UVPreview = new UVPreview(); if (target) { m_UVPreview.Add((GameObject)target, true); } m_Textures = CollectTextures((GameObject)target); m_TexContent = new GUIContent("贴图"); Renderer[] renderers = ((GameObject)target).GetComponentsInChildren <Renderer>(); m_RendersCount = renderers.Length; } catch (Exception) { } }