文章目录
前言
在使用Unity进行合作开发时有时会看见其他人的脚本有注释说明,瞬间给人高大上的感觉.有两种方式方式可以实现.简单说一下第一种,.不管用的什么IDE里面都有插入代码块或者注释说明功能,在相应地方写好每个脚本手动插入.下面我们来着重说一下第二种方法:修改Unity脚本模板.
Unity自定义脚本模板
首先找到Unity的默认脚本模板路径在安装目录下Editor\Data\Resources\ScriptTemplates
打开81-C# Script-NewBehaviourScript.cs.txt文本
左边是修改过的,右边是默认的,点击复制
一键复制.
/*
*FileName: #SCRIPTNAME#
*CompanyName: #CompanyName#
*Author: #Author#
*CreateTime: #CreateTime#
*UnityVersion: #UnityVersion#
*Version: #Version#
*Description:
*
*/
删掉MonoBehaviour即脚本不继承MonoBehaviour.可以有多个模板,添加后需要重启Unity
效果图
下面我们接着说,修改默认模板时 我们发现有一些类似#SCRIPTNAME#
,#UnityVersion#
,#CreateTime#
的关键字,这些是创建脚本时实时替换的需要我们另写一个脚本进行处理,下面是代码片段
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
public class CustomScriptTemplate : UnityEditor.AssetModificationProcessor
{
/// <summary>
/// 此函数在asset被创建完,文件已经生成到磁盘上,但是没有生成.meta文件和import之前被调用
/// </summary>
/// <param name="newFileMeta">newfilemeta 是由创建文件的path加上.meta组成的</param>
public static void OnWillCreateAsset(string newFileMeta)
{
string newFilePath = newFileMeta.Replace(".meta", "");
string fileExt = Path.GetExtension(newFilePath);
if (fileExt != ".cs")
{
return;
}
//注意,Application.datapath会根据使用平台不同而不同
string realPath = Application.dataPath.Replace("Assets", "") + newFilePath;
string scriptContent = File.ReadAllText(realPath);
//这里实现自定义的一些规则
scriptContent = scriptContent.Replace("#SCRIPTNAME#", Path.GetFileName(newFilePath));
scriptContent = scriptContent.Replace("#CompanyName#", "");
scriptContent = scriptContent.Replace("#Author#", "ShangChao");
scriptContent = scriptContent.Replace("#Version#", "1.0");
scriptContent = scriptContent.Replace("#UnityVersion#", Application.unityVersion);
scriptContent = scriptContent.Replace("#CreateTime#", System.DateTime.Now.ToString("yyyy-MM-dd-HH:mm:ss"));
File.WriteAllText(realPath, scriptContent);
}
}