zoukankan      html  css  js  c++  java
  • Unity Editor 工具开发 (一)

    Unity EditorTool Dev Tutorial(一)

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

    前言

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

    1. 创建Editor的文件夹

    在Unity中存在特殊的几种文件夹:

    1. Editor
    2. Plug-ins
    3. Resources
    4. StreamingAssets
    5. ...

    这里主要介绍Editor:

    1. Editor文件夹的主要功能是 提供一个给Editor代码运行的环境
    2. 当游戏打包时不会将该环境下的代码编译打包进游戏中
    3. 当编辑器启动时,在该文件夹中的代码就能开始启动了,不需要点击Play
    4. Editor文件夹不是指某一个文件夹,而是指所有在项目工程内所有命名为Editor文件夹。即同一个工程内,可以有多个Editor文件夹,路径任意,只需要名称为Editor即可
    5. 细心的朋友能注意到,Editor与游戏逻辑代码是不同的两个Assembly

    本文主要用到这种,其余更多的特殊文件夹,这里不赘述,要更多详细的资料,参考
    官方文档

    2. 创建启动菜单栏

    例图:

    例子

    使用过Unity工具的朋友,必然见到过这种,自定义的菜单栏,下面是实现该种菜单栏的实例代码:
    c#
    [MenuItem("Ou/UnitEditor")]
    static void Init()
    {
    EditorWindow.GetWindow("UnitEditor");
    }

    分析:
    1. [MenuItem("Ou/UnitEditor")],这个Attribute需要引用UnityEditor的命名空间。用处是,给菜单栏提供一个自定义的选项。
    2. "Ou/UnitEditor"是菜单的路径,当然你也可以添加到默认的菜单中如"Component/UnitEditor"
    3. Static void Init(){...}为点击该选项后的调用函数,需注意一点,该函数必须是静态的。
    
    Ref:[官方文档](https://docs.unity3d.com/ScriptReference/MenuItem.html "官方文档")
    
    以上述
    已经可以制作一个简单的小Demo了。
    练习:制作一个打印当前年月日的Editor工具
    
    示例:
    ![](https://i.imgur.com/9Y3yHWG.png)
    ![](https://i.imgur.com/xQk62Q1.png)
    
    ```C#```
    using UnityEngine;
    using System.Collections;
    using System;
    using UnityEditor;
    public class Test{
        [MenuItem("Test/Go")]
        static void Go()
        {
            Debug.Log(DateTime.Now.ToLongDateString());
        }
    }
    

    ——To Be Continue

  • 相关阅读:
    JSONObject简介
    android:layout_gravity 和android:gravit的区别?
    CountDownTimer,0,0
    java应用集锦9:httpclient4.2.2的几个常用方法,登录之后访问页面问题,下载文件
    HttpClient学习系列 -- 学习总结
    创建多线程的HttpClient
    HttpClient4.X 升级 入门 + http连接池使用
    Java Executors(线程池)
    [微软官方]SQLSERVER的兼容级别
    vSphere Client 连接ESXi 或者是vCenter 时虚拟机提示VMRC异常的解决办法
  • 原文地址:https://www.cnblogs.com/EffectL/p/7642057.html
Copyright © 2011-2022 走看看