文章目录
前言Unity自定义脚本模板下载链接前言
在使用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);}}