Unity创建C#脚本与项目的模板路径并修改

Unity创建C#脚本与项目的模板路径并修改

C#脚本模板

在项目开发的过程中,我们需要对一个.cs文件添加一些注释(例如:创建者,创建日期,该类的作用),或者给创建的类增加某个通用的函数。如果我们每创建一个.cs文件都需要添加这些会影响我们的开发效率,会很麻烦。那么我们本着“多一事不如少一事”的原则,这个时候就需要一个模版来解决这个问题。

路径

首先我们要找到脚本模板文件。当然每个人在电脑上安装的目录不一样,所以注意前面目录及unity版本的问题。
其路径有:

Window
Unity安装目录\Editor\Data\Resources\ScriptTemplates\81-C# Script-NewBehaviourScript.cs.txt

Mac
Unity.app/Contents/Resources/ScriptTemplates/81-C# Script-NewBehaviourScript.cs.txt

模板文件

打开81-C# Script-NewBehaviourScript.cs.txt文件,我们可以先看一下Unity默认创建.cs文件是它的格式:

public class #SCRIPTNAME# : MonoBehaviour {

    // Use this for initialization
    void Start () {
        #NOTRIM#
    }
    
    // Update is called once per frame
    void Update () {
        #NOTRIM#
    }
}

这个模版正是我们每次创建.cs文件时对应的模版,这个时候我们把这个模版改掉之后我们创建的.cs文件默认的文本也会改变。

/************************************************************
 *  Copyright © 2022-2024 #AUTHORNAME#. All rights reserved.
 *-----------------------------------------------------------
 *  文件:#SCRIPTNAME##FILEEXTENSION#
 *  作者:Plane
 *  邮箱:807008649@qq.com
 *  日期:Created by #SMARTDEVELOPERS# on #CREATETIME#
 *  项目:#PROJECTNAME#
 *  功能:Nothing
*************************************************************/

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace zhangmeng_code
{
    	#ROOTNAMESPACEBEGIN#
	public class #SCRIPTNAME# : MonoBehaviour 
	{

		void Awake()
		{
			#NOTRIM#
		}

		void Start ()
		{
			#NOTRIM#
		}
	
		void Update ()
		{
			#NOTRIM#
		}
	}
	#ROOTNAMESPACEEND#
}

以上便是我所修改的模板文本。
这个时候我们去Unity里面创建一个.cs文件,发现它的创建内容确实变了。

/****************************************************
 *  Copyright © 2018-2020 ZM. All rights reserved.
 *------------------------------------------------------------------------
 *  文件:App.cs
 *  作者:zm
 *  邮箱:807008649@qq.com
 *  日期:Created by IVLab on 12/25/2019 14:41:49
 *  项目:VirtualTrainingPlatformV4.0
 *  功能:Nothing
*****************************************************/

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace ZM_Code
{
	public class App : MonoBehaviour 
	{

		void Awake()
		{
			
		}

		void Start ()
		{
			
		}
	
		void Update ()
		{
			
		}
	}
}

但是这个时候又有一个问题出现了,我们创建出来的文本的注释不会随着时间的推移进行改动,或者说如何在创建一个.cs文件的时候就将需要修改的地方进行修改。
我们自己新建的脚本模板文件里面有自己添加的几个预定义的key。然后只要在新建脚本的时候替换这几个key为对应的内容,便能够完成上述功能。
我们就需要在项目的Editor文件夹下创建以下脚本(.cs):

using System;
using System.IO;
using UnityEditor;

namespace ZM_Code
{
    public class ScriptsInfoEditor : UnityEditor.AssetModificationProcessor
    {
        public const string authorName = "tackor(修改为你自己的名称即可)";

        private static void OnWillCreateAsset(string path)
        {
            path = path.Replace(".meta", "");
            if (path.EndsWith(".cs"))
            {
                string str = File.ReadAllText(path);
                str = str.Replace("#AUTHORNAME#", authorName);
                str = str.Replace("#FILEEXTENSION#", path.Substring(path.LastIndexOf(".")));
                str = str.Replace("Plane", Environment.UserName);
                str = str.Replace("#SMARTDEVELOPERS#", PlayerSettings.companyName);
                str = str.Replace("#CREATETIME#", string.Concat(DateTime.Now.ToString("d"), " ", DateTime.Now.Hour, ":", DateTime.Now.Minute, ":", DateTime.Now.Second));
                str = str.Replace("#PROJECTNAME#", PlayerSettings.productName);
                File.WriteAllText(path, str);
            }
        }
    }
}

注意
1.在创建新脚本之前,需要先将脚本ScriptsInfoEditor.cs拖入到工程目录下的Editor(如果没有就自己创建一个命名为Editor的文件夹)目录中去。
2.设置PlayerSettings的属性,点击Edit/Project Settings/Player,修改Company Name为所需要的名字。

这个时候我们发现再次新建的.cs脚本文件它的日期变了,而且其他的我们需要修改得其他的一些模版信息,也随着设定出现了改变。

项目模板

上面我们设置了一个用于C#脚本信息编辑的脚本,那么我们为了能够实现这个逻辑,每次创建完项目之后都需要将该脚本复制到项目中。虽然也不是很麻烦,但日常开发中还是会有忘记的情况,所以感觉有点麻烦。
那么我就想每次创建项目时,这个脚本都能自动的添加到新项目中。

路径

想到上面既然有C#脚本模板,那项目的创建有没有模板呢?根据上面C#脚本模板的路径,就真找到了。

Window
Unity安装目录\Editor\Data\Resources\PackageManager\ProjectTemplates\com.unity.template.3d-5.0.4.tgz

Mac
Unity.app/Contents/Resources/PackageManager/ProjectTemplates/com.unity.template.3d-5.0.4.tgz



截图中可以看到,一共有4个模板,分别对应Hub上面的几个预制模板,其他的模板下载之后应该也是在这个路径下。

修改项目模板

这里我以3D模板为例演示如何修改,其他模板的修改都一样。
首先解压压缩包,如图:

我们需要修改的就在ProjectData~文件夹中。

可以看到里面就是一个项目最基础的文件夹结构,下面的就很容易理解了。


在Assets文件夹下创建一个Editor文件夹,将上面我们创建的ScriptsInfoEditor.cs脚本复制到其中。
下面就需要将文件压缩成之前的样子。

需要注意的是,在上图中的位置将package文件夹压缩,原压缩文件为.tgz格式,经过测试,可以先压缩为ZIP文件,然后修改扩展名,并不会报错。压缩好之后把压缩文件改名为com.unity.template.3d-5.0.4.tgz

改好之后将压缩文件放到先前的图中这个位置,可以将原文件直接替换,或者移至别处防止出现问题。
这就大功告成。~~~~
测试结果我就不截图了,大家可以自行检测。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天富儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值