Unity Editor 编辑器扩展 六 EditorWindow
2016-12-03 15:17
691 查看
目录
窗口弹出框
窗口创建查找游戏物体
为窗口添加图标和菜单
EditorWindow的简单用法之前都用过了,这里介绍一些特殊的用法
效果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/00c9c5c610dd256da4f7d4d6ac62a5a0)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/d395abcfb96319f4e2824217d0c8b28b)
效果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/dcce45e068b92a070993214fbb0193c9)
效果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/1f3812eef84e25531eb061b47d73bf8f)
本文工程:http://download.csdn.net/detail/warrenmondeville/9700712
本文链接:http://write.blog.csdn.net/mdeditor#!postId=53444808
窗口弹出框
窗口创建查找游戏物体
为窗口添加图标和菜单
EditorWindow的简单用法之前都用过了,这里介绍一些特殊的用法
窗口弹出框
在Editor下创建脚本如下:using UnityEditor; using UnityEngine; public class WindowExample1 : EditorWindow { [MenuItem("Window/WindowExample1")] static void Open () { GetWindow<WindowExample1> (); } ExamplePupupContent popupContent = new ExamplePupupContent (); void OnGUI () { if (GUILayout.Button ("PopupContent",GUILayout.Width(128))) { var activatorRect = GUILayoutUtility.GetLastRect (); PopupWindow.Show (activatorRect, popupContent); } } } //弹窗 public class ExamplePupupContent : PopupWindowContent { public override void OnGUI (Rect rect) { EditorGUILayout.LabelField ("Lebel"); } public override void OnOpen () { Debug.Log ("打开窗口"); } public override void OnClose () { Debug.Log ("关闭窗口"); } public override Vector2 GetWindowSize () { //Popup 弹窗的大小 return new Vector2 (300, 200); } }
效果如下:
窗口创建查找游戏物体
在Editor下创建脚本如下:using UnityEditor; using UnityEngine; public class WindowExample2 : ScriptableWizard { public string gameObjectName; [MenuItem("Window/WindowExample2")] static void Open () { DisplayWizard<WindowExample2> ("TitleName", "Create", "Find"); } // 创建一个GameObject void OnWizardCreate () { new GameObject (gameObjectName); } void OnWizardOtherButton () { var gameObject = GameObject.Find (gameObjectName); if (gameObject == null) { Debug.Log ("没有找到相关物体"); } } void OnWizardUpdate () { Debug.Log ("Update"); } }
效果如下:
为窗口添加图标和菜单
在Editor下创建脚本如下:using UnityEditor; using UnityEngine; public class WindowExample3 : EditorWindow,IHasCustomMenu { // 给窗口添加菜单 public void AddItemsToMenu (GenericMenu menu) { menu.AddItem (new GUIContent ("example"), false, () => { }); menu.AddItem (new GUIContent ("example2"), true, () => { }); } [MenuItem ("Window/WindowExample3")] static void Open () { var window = GetWindow<WindowExample3> (); // 设置窗口最大和最小尺寸,这里最大和最小相等,相当于尺寸不可改变 window.maxSize = window.minSize = new Vector2 (300, 300); // 设置窗口图标 var icon = AssetDatabase.LoadAssetAtPath<Texture> ("Assets/Editor/Mondeville.png"); // 设置窗口标题 window.titleContent = new GUIContent ("Hoge", icon); } }
效果如下:
本文工程:http://download.csdn.net/detail/warrenmondeville/9700712
本文链接:http://write.blog.csdn.net/mdeditor#!postId=53444808
相关文章推荐
- 【Unity编辑器】EditorWindow扩展-SubWindow
- Unity编辑器扩展之EditorWindow
- UnityEditor扩展 - 编辑器中的内置属性Attribute
- Unity Editor 编辑器扩展 七 创建脚本模版
- Unity Editor 编辑器扩展 十 Handle控件
- Unity Editor 编辑器扩展 十一 Inspector可排序列表
- Unity扩展编辑器--类型1:Editor Windows
- [cb]Unity Editor Toolbar 编辑器扩展
- Unity Editor 编辑器扩展 八 Undo
- Unity Editor 编辑器扩展 十三 自定义创建资源
- Unity Editor Toolbar 编辑器扩展
- Unity Editor 编辑器扩展三 Unity Editor 数据持久化及Editor窗口的初识
- Unity Editor 编辑器扩展 十五 提取NGUI 的Transform ResetPosition 功能
- UnityEditor扩展编辑器实现从场景中渲染得到Cubemap
- Unity Editor 编辑器扩展 五 EditorGUI
- 在Unity内制作工具(1)--MenuItem,Resouces.FindObjectsofTypeAll<>与EditorWindow自制编辑器窗口
- Unity编辑器拓展【视图窗口扩展】
- Unity 编辑器扩展 场景视图内控制对象
- Unity3d UnityEditor编辑器定制和开发插件
- Unity编辑器扩展知识点