文章目录
- 1. Unity 中自带的代码模板
- 创建自己的代码模板
- 3. 代码模板的修改
- 4. 自定义标签
1. Unity 中自带的代码模板
- 在 Unity 的安装目录下找到 Unity\Editor\Data\Resources\ScriptTemplates 文件夹,结构如下:
对应上图可得出:
- 文件名后缀名为.txt,除去后缀后分为3个部分,用“-”隔开
- 第一段为数字,代表其在菜单排列中的优先级,根据数字大小会自动分组
- 第二段为其在菜单中的显示名称,使用两个下划线可以创建二级菜单
- 第三段是该菜单所建立的文件初始时的名称,包括后缀名
创建自己的代码模板
根据上面得出的结论,我们可以新建自己的代码模板
- 在模板目录下新建 .txt 文件
- 在 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)读取文件,替换掉你自定义的标签后写回,代码的初始化也就完成了。