深圳Unity3D培训
达内深圳龙华中心

185-8926-6248

热门课程

【深圳Unity3D培训机构】Unity编辑器扩展之EditorWindow

  • 时间:2017-08-30 09:30
  • 发布:深圳Unity3D培训
  • 来源:达内新闻

【深圳Unity3D培训机构】Unity编辑器扩展之EditorWindow

    承继这个类的编辑器脚本可以或许用来创建一个编辑器窗口,相似Inspector窗口
    若要在这个类中增加一些控件,可以或许应用GUI和GUILayout控件,还可以或许应用编辑器公用控件EditorGUI/EditorGUILayout

脚本创建

    在Assets/Editor文件夹下创建脚本,并承继UnityEditor.EditorWindow
    在OnGUI函数中写控件代码

窗口表现的触发

    一样平常应用MenuItem属性创建一个菜单选项,点击后挪用此函数表现窗口,如EditorWindow.GetWindow(typeof(MyWindow))

为窗口增加控件

    上述提到的EditorGUILayout等类中包括类各类控件,好比IntField, IntPopup, IntSlider, Vector2Field, TextField等等
    将创建这些控件的代码放在OnGUI函数中,则每一次衬着窗口都邑履行一次

其余功效

    Update():对付可见窗口,每秒挪用100次
    OnDestroy():封闭窗口时挪用
    OnFocus():窗口当选中时挪用
    OnLostFocus():窗口再也不当选中时挪用

例子

    如下为示例,还可参考Unity民间文档EditorWindow部门

    using UnityEditor;
    using UnityEngine;

    public class MyExt : EditorWindow {
        private int param1 = -1;
        private float param2 = 0;
        private string name = "";
        private int id = 0;

        [MenuItem("MyExt/Edit", false, 1)]
        private static void Init()
        {
            MyExt editor = (MyExt)EditorWindow.GetWindow(typeof(MyExt));
            editor.Show();
        }

        void OnGUI()
        {
            GUILayout.Label("Section1", EditorStyles.boldLabel);
            param1 = EditorGUILayout.IntField("param1 int", param1);
            if (GUILayout.Button("Load"))
            {
                Debug.Log("Load");
            }

            GUILayout.Label("Section2", EditorStyles.boldLabel);
            param2 = EditorGUILayout.FloatField("param2 float", param2);
            name = EditorGUILayout.TextField("Name", name);
            id = EditorGUILayout.IntSlider("id 0~8", id, 0, 100);
        }
    }

想知道更多关于IT行业的信息吗?想远远不如行动,行动起来,一起加入达内,一起进入IT行业,跟着达内的脚步,一起走进如今的互联网信息时代,带给你不一样的色彩生活——【深圳Unity3D培训

深圳达内

上一篇:【深圳Unity3D培训班】怎么用Unity自带的Mono库
下一篇:【深圳Unity3D培训机构】带你了解Unity3D优化从哪入手

马上预约三天免费体验课

姓名:

电话:

移动应用中的AR开发,5款最受欢迎工具推荐!

【深圳Unity3D培训】unity中不可不知的13个小技巧

【深圳Unity3D培训】unity 射线过滤

【深圳Unity3D培训】Unity是如何跨平台的?

选择城市和中心
贵州省

广西省

海南省