private new  void OnDisable()
 {
     base.OnDisable();
     if (m_UVPreview != null)
     {
         m_UVPreview.Release();
     }
     m_UVPreview = null;
 }
示例#2
0
 void OnDisable()
 {
     if (m_GameObjectInspector)
     {
         DestroyImmediate(m_GameObjectInspector);
     }
     m_GameObjectInspector = null;
     if (m_UVPreview != null)
     {
         m_UVPreview.Release();
     }
     m_UVPreview = null;
 }
示例#3
0
    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)
        {
        }
    }