Unity 自定义代码模板

1. Unity 中自带的代码模板

  1. 在 Unity 的安装目录下找到 Unity\Editor\Data\Resources\ScriptTemplates 文件夹,结构如下:在这里插入图片描述
    在这里插入图片描述
    对应上图可得出:
  • 文件名后缀名为.txt,除去后缀后分为3个部分,用“-”隔开
  • 第一段为数字,代表其在菜单排列中的优先级,根据数字大小会自动分组
  • 第二段为其在菜单中的显示名称,使用两个下划线可以创建二级菜单
  • 第三段是该菜单所建立的文件初始时的名称,包括后缀名

创建自己的代码模板

根据上面得出的结论,我们可以新建自己的代码模板

  1. 在模板目录下新建 .txt 文件
    在这里插入图片描述
  2. 在 Unity 中的显示为:
    在这里插入图片描述

3. 代码模板的修改

  • C# 模板:
/*
 * FileName:    #SCRIPTNAME#
 * Author:      #AUTHORNAME#
 * CreateTime:  #CREATETIME#
 * Description:
 * 
*/
using UnityEngine;
using System.Collections;

public class #SCRIPTNAME# : MonoBehaviour
{
    
    
    void Start()
    {
    
    

    }

    void Update()
    {
    
    

    }
}
  • Lua 模板
--[==[
FileName:   #SCRIPTNAME#
Author:     #AUTHORNAME#
CreateTime: #CREATETIME#
Description:

--]==]
#SCRIPTNAME# = {
    
    

}
#SCRIPTNAME#.__index = #SCRIPTNAME#

#SCRIPTNAME# 这个标签在文件创建后会自动替换成文件的名称

4. 自定义标签

上文的 #AUTHORNAME# 和 #CREATETIME# 这两个标签则是我自定义的,因为这个不是固定字符串,需要在文件创建的时候生成
在UnityEditor中有许多很实用的类,这里我们需要用到UnityEditor.AssetModificationProcessor。这个类的详细说明可以查询Unity的API。
创建 Editor 文件夹,在文件夹下新建代码:

/*
 * FileName:    ScriptInitializer
 * Author:      熊哲
 * CreateTime:  2016/08/08 10:49
 * Description:
 * 用于初始化脚本文件,使用前请先修改Unity的脚本模板
 * 文件请放置于Editor文件夹下
*/
using System.IO;

public class ScriptInitializer : UnityEditor.AssetModificationProcessor
{
    
    
    public static void OnWillCreateAsset(string path)
    {
    
    
        path = path.Replace(".meta", "");
        if (path.ToLower().EndsWith(".cs") || path.ToLower().EndsWith(".lua"))
        {
    
    
            string content = File.ReadAllText(path);

            content = content.Replace("#AUTHORNAME#", "ming");
            content = content.Replace("#CREATETIME#", System.DateTime.Now.ToString());

            File.WriteAllText(path, content);
        }
    }
}

这个类继承UnityEditor.AssetModificationProcessor后,在有资源创建时,会自动调用其中的OnWillCreateAsset(string path)方法,这个方法传入的参数是资源对应的meta文件路径(Unity里所有的资源都有对应的meta文件)。把该路径中的“.meta”后缀去掉就是你所创建的文件了。使用File.ReadAllText(path)读取文件,替换掉你自定义的标签后写回,代码的初始化也就完成了。

猜你喜欢

转载自blog.csdn.net/weixin_45136016/article/details/131433153