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

  • 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 initializationvoid Start () {#NOTRIM#}// Update is called once per framevoid Update () {#NOTRIM#}
}

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

/*****************************************************  Copyright © 2018-2020 #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 ZM_Code
{public class #SCRIPTNAME# : MonoBehaviour {void Awake(){#NOTRIM#}void Start (){#NOTRIM#}void Update (){#NOTRIM#}}
}

以上便是我所修改的模板文本。
这个时候我们去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。

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

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

  1. java项目如何更改路径_Java修改eclipse中web项目的server部署路径问题

    和MyEclipse不一样,在Eclipse中做的Web项目默认是不支持将项目发布到Web服务器上的,会发布到工作空间的某个目录,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse ...

  2. [Unity官方文档翻译]2D or 3D Projects Unity中2D和3D项目的区别

    2D or 3D Projects 2D或3D项目 Unity is equally suited to creating both 2D and 3D games. But what's the d ...

  3. Unity编辑器开发——通过模板创建Lua脚本的两种方式(一)

    个人学习笔记,如有错误.疑问.建议,欢迎留言. 声明:本文不得以任何形式进行转载.  前言:在Unity编辑器的Project界面,可以直接右键创建C#脚本,而目前许多游戏公司使用的是tolua.xl ...

  4. Unity编辑器开发——通过模板创建Lua脚本的两种方式(二)

    个人学习笔记,如有错误.疑问.建议,欢迎留言. 本文有关代码转载自:Unity3D 扩展编辑器实现创建Lua脚本 - 知乎 (zhihu.com) 声明:本文转载已取得原文章作者同意,有兴趣的可以关注 ...

  5. unity之定制脚本模板

    1.unity的脚本模板 新版本unity中的C#脚本有三类,第一类是我们平时开发用的C# Script:第二类是Testing,用来做单元测试:第三类是Playables,用作TimeLine中管理 ...

  6. ue4 项目模板_Unreal 学习和使用UE4的第二步——创建项目和模板试玩 - 游戏编程 ️...

    创建自己的项目 启动 可以从Epic Games客户端点击"库"选项,在引擎版本的下拉选项中启动已安装的虚幻引擎 从客户端启动虚幻引擎 也可以通过桌面的快捷方式启动虚幻引擎 打开 ...

  7. 【Unity3D】Unity 脚本 ① ( 创建 C# 脚本 | Visual Studio 2019 中打开 C# 脚本 | 编译 C# 脚本 | 挂载 C# 脚本到游戏物体 | 运行脚本 )

    文章目录 一.创建 Unity 脚本 二.Visual Studio 2019 中打开 C# 脚本 三.编译 C# 脚本 四.挂载 C# 脚本到游戏物体 GameObject 1.添加组件方式 2.直 ...

  8. Unity在创建.cs脚本时自动添加脚本描述等注释

    @# Unity编辑器扩展 需求: 立项之后需要每位参与项目的程序在创建.cs脚本时添加功能描述.创建时间.创建者等多种类型的脚本说明. 思路: UnityEditor在对资源进行操作时需要调用Ass ...

  9. unity创建项目不添加包_使用精选的资产捆绑包和Unity Learn Premium可以更高效地创建项目

    unity创建项目不添加包 For a limited time, we're bundling and discounting some of our most popular assets and ...

最新文章

  1. 程序员,如何三十而立?
  2. macos安装低版本php,mac下安装多个版本PHP及切换
  3. STP生成树的选举详细步骤、四个案列详解(附图,建议电脑观看)
  4. 苹果7plus专用计算机,iphone7plus怎么用 iphone7plus使用技巧【详解】
  5. python爬取NBA湖人队球星的数据,并且用Excel保存
  6. pythonmatplotlib绘图小提琴_使用seaborn制图(小提琴图)
  7. Navicat for MySql管理工具 中文破解版
  8. 达芬奇剪辑调色专用键盘DaVinci Resolve Speed Editor
  9. HTML页面浏览历史,浏览历史记录功能
  10. Unity 在2D中实现LookAt
  11. [区块链安全-Ethernaut]附加GoodSamaritan解题思路
  12. 励志照亮人生 编程改变命运
  13. 大型传统企业如何向人工智能转型?
  14. MCE公司:M525-针对混合谱系白血病(MLL)的新型抑制剂
  15. 关于线性空间和线性映射
  16. Ubuntu中实现中英文切换
  17. html三角形坐标图怎么看,地理三角坐标图的简易判读方法
  18. 包青天人声接电话搞笑版铃声 包青天人声接电话搞笑版手机铃声...
  19. 战地3皓月服务器win10系统,战地3配置
  20. 浏览器阻挡cookies_解决WordPress登录出现Cookies被阻止或者您的浏览器不支持

热门文章

  1. HTML5大屏版性能测试报告
  2. 阿里云域名购买、认证、解析 腾讯企业邮箱注册、解析
  3. draft-editor实现粘贴上传图片
  4. linux下vi文本编辑命令(例:~/.bashrc)
  5. 微信小程序学习6:页面生命周期回调函数
  6. 关于Futaba T 14SG遥控器的配置
  7. MATLAB变量和数据类型
  8. 读取文件,并统计字母数、空格数、数字数
  9. 留学回国后混的很惨是一种怎样的体验?
  10. 【水利物联网】雨污水泵站监控系统方案