您的位置:首页 > 移动开发 > Unity3D

Unity EditorTool Dev Tutorial(二)

2017-12-04 23:52 337 查看

Unity EditorTool Dev Tutorial(二)

最近,公司项目新开,要笔者写一些给策划用的工具,对Unity有了解的朋友肯定知道Unity的插件工具是十分丰富的,提供的API能让开发者自定义工具。于是作为小白的笔者,也一股脑扎进了工具开发的漩涡中。发现关于Editor的基础教程,在国内非常少,于是,笔者便有了记录学习Editor的想法。本文将持续记录笔者从零搭建工具的所见所闻。

前言

笔者也是在学习Editor中,写下的这篇记录,若有对该工具的感兴趣,笔者在Github上更新这个项目,一套正在开发的工具。Ps:没写Readme的

章节介绍

这一节,记录的是:建立窗口,为了后续做节点编辑器使用。

1. 建立窗口

从上节我们知道了,如何添加一个菜单项,来制作启动项。我们需要利用启动函数,来新建一个窗口出来,作为自定义编辑器的Panel。

在Editor中,建立窗口,需要使用UnityEditor中的EditorWindow类。

EditorWindow提供一个静态方法EditorWindow.GetWindow。

话不多说贴上:官方详细

示例:



C#


using UnityEngine;

using System.Collections;

using System;

using UnityEditor;

public class Test{

[MenuItem(“Test/Go”)]

static void Go()

{

Debug.Log(DateTime.Now.ToLongDateString());

}

}

这是上一章我们用来 打印日期的工具Item菜单,我们接下来将它变成,新建一个窗口的Item菜单。

修改代码如下:
```c#
using UnityEngine;
using System.Collections;
using System;
using UnityEditor;
public class Test: EditorWindow
{
//笔者写这个,有单例的习惯
public static Test Instance;
[MenuItem("Test/Go")]
static void Go()
{
//Debug.Log(DateTime.Now.ToLongDateString());
//窗口初始化
Instance = GetWindow<Test>();
Instance.titleContent=new GUIContent("My EditorWindow");
Instance.maxSize=new Vector2(1800,900);
Instance.minSize = new Vector2(1000, 500);
}
}


效果图:



笔者使用的方式是最简单的一种,其实这个函数还有更多的参数可以对窗口进行设置。

public static T GetWindow();

public static T GetWindow(bool utility);

public static T GetWindow(bool utility, string title);

public static T GetWindow(string title);

public static T GetWindow(string title, bool focus);

public static T GetWindow(bool utility, string title, bool focus);

所谓 Utility窗口 默认不设置是false,即正常窗口,若设置成false

那么窗口就变成了下图这样:熟悉Unity的朋友很容易明白两者的区别,后者是无法自定义折叠位置的。

而focus,笔者感觉没什么用,官方详细都是说的,若是新建立的窗口,总是focus的。置为false也没用。



——To Be Continue
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: