Unity 自定义代码模板

news2024/9/28 11:14:33

文章目录

  • 1. Unity 中自带的代码模板
  • 创建自己的代码模板
  • 3. 代码模板的修改
  • 4. 自定义标签

1. Unity 中自带的代码模板

  1. 在 Unity 的安装目录下找到 Unity\Editor\Data\Resources\ScriptTemplates 文件夹,结构如下:在这里插入图片描述
    在这里插入图片描述
    对应上图可得出:
  • 文件名后缀名为.txt,除去后缀后分为3个部分,用“-”隔开
  • 第一段为数字,代表其在菜单排列中的优先级,根据数字大小会自动分组
  • 第二段为其在菜单中的显示名称,使用两个下划线可以创建二级菜单
  • 第三段是该菜单所建立的文件初始时的名称,包括后缀名

创建自己的代码模板

根据上面得出的结论,我们可以新建自己的代码模板

  1. 在模板目录下新建 .txt 文件
    在这里插入图片描述
  2. 在 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)读取文件,替换掉你自定义的标签后写回,代码的初始化也就完成了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/695563.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS知识点汇总(一)

介绍一下标准的 CSS 的盒子模型? 两种盒子模型:IE盒模型(border-box)、W3C标准盒模型(content-box) 盒模型: 分为内容(content)、填充(padding)、边界(margin)、 边框(border)四个部分&#x…

IntelliJ IDEA maven 引用本地 jar 文件

一、背景说明 由于某些特定原因,不能在远程maven仓库中下载所需要版本的jar文件,需要在maven中引用本地jar文件。 二、解决方案 1、创建 libs 目录 为了方便jar包管理,可以在工程目录下,创建一个与src目录平级的libs目录。如下…

OpenCV之Window开发环境配置

下载opencv开发包 win配置: 双击SDK包解压 解压中 解压成功 配置环境变量 验证环境 创建控制台应用并配置工程属性表添加opencv环境 创建属性表 配置属性 复制属性表并修改名Project1X64_Debug与Project1X64_Release 导入属性表 测试opencv功能 示例代码 #include <ope…

rsync安装使用

目录 一、磁盘性能测试安装fio磁盘性能测试工具测试内容为顺序读、随机读、顺序写、随机写、随机读写结果分析 二、CPU性能测试安装sysbench性能测试工具结果分析 三、内存性能测试结果分析 四、网络性能测试测试iperf3工具测试结果分析1.测试TCP吞吐量2 . 测试UDP丢包和延迟 此…

Kubernetes-Ingress、Ingress Controller、Ingress Class

概念 1.Ingress 是对K8S集群中服务的外部访问进行管理的 API 对象。Ingress 公开从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源上定义的规则控制。 2.Ingress Controller 通常负责通过负载均衡器来实现 Ingress。 3.必须拥有一个 Ingress Controller…

【已解决】如何下载使用公司内部Maven私有仓库中的依赖

文章目录 1、前言2、解决办法3、总结 1、前言 ​今天刚来公司实习&#xff0c;面对leader抛来的项目和文档&#xff0c;对于第一次实习的我&#xff0c;显然有点手足无措&#xff0c;于是就按着平时写代码的习惯。1、拉代码放本地&#xff1b;2、开始导入项目依赖&#xff1b;…

go channel 详解

一、概述 在Go语言中&#xff0c;channel是一种特殊的类型&#xff0c;用于在并发编程中实现不同的goroutine之间的通信和同步。本文将深入探讨golang的channel是如何工作的&#xff0c;并介绍如何使用channel来提高程序的性能和可靠性。 二、什么是Channel&#xff1f; 在G…

【Opencv】----- 图片无缝融合

上次写了一篇关于GAN缺陷生成的图片的&#xff0c;发现大家的对这个根本不感兴趣&#xff0c;可能是用于在座的各位觉得样本有的是&#xff0c;我为什么还苦哈哈的去生成啊&#xff0c;说的也不是没有道理&#xff0c;可能只是我搞了更加苦哈哈的工业深度学习吧&#xff0c;所以…

软件测试技能,JMeter压力测试教程,监听器之每秒事务数与响应时间(十四)

前言 压测的时候&#xff0c;我们会经常关注2个重要的指标 TPS 和 RT TPS&#xff1a;每秒处理的事务数(Transactions per Second)&#xff0c;jmeter的Throughput为吞吐量&#xff08;请求数/秒&#xff09; RT&#xff1a;响应时间(Reponse Time&#xff09;&#xff0c;从…

西亚文明的时空概念与历史上的文明形态

“西亚”这个地理概念主要指的是今日土耳其、伊朗、伊拉克、叙利亚、黎巴嫩、约旦、以色列和沙特等阿拉伯半岛国家所在的地区。若以地理区域来划分&#xff0c;与西亚文明比较密切的区域主要有&#xff1a;小亚细亚&#xff08;今土耳其&#xff09;、两河流域&#xff08;今伊…

n.moduleList 和Sequential的解析与对比

n.moduleList 和Sequential的解析与对比 1.nn.ModuleList2.nn.Sequential3、nn.Sequential与nn.ModuleList的区别4、使用场景 1.nn.ModuleList 2.nn.Sequential 3、nn.Sequential与nn.ModuleList的区别 4、使用场景

汇编输入int 16h

int 16h 读入缓冲区ASCII码 检测点17.1 int 16h会设置if1 assume cs:code code segment start:mov ah,0int 16hmov ah,1cmp al,rje redcmp al,gje greencmp al,bje bluejmp sret red:shl ah,1 green:shl ah,1 blue:mov bx,0b800hmov es,bxmov si,1mov cx,2000 s: mov byte ptr…

mysql 基础架构与组件

基础架构 下图是 MySQL 的一个简要架构图&#xff0c;从下图你可以很清晰的看到用户的 SQL 语句在 MySQL 内部是如何执行的。 先简单介绍一下下图涉及的一些组件的基本作用帮助大家理解这幅图。 连接器&#xff1a; 身份认证和权限相关(登录 MySQL 的时候)。查询缓存: 执行查…

Docker安装mysql8-超详细、每步都有截图

1.下载mysql8镜像&#xff08;版本根据自己选择&#xff1a;这里是8.0.20&#xff09; docker pull mysql:8.0.202.启动镜像 docker run -p 3307:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD123456 -d mysql:8.0.20这里特殊的地方只是说明一下、对每个参数有个了解。没其他实…

webassembly添加调试

本文主要参考&#xff1a;webassembly下C调试 一、安装扩展程序 如果有条件的&#xff1a;DevTools下载 使用第三方Chrome扩展插件搜索下载网站地址 &#xff0c;搜索DWARF下载。 二、使用扩展程序 解压安装包后&#xff0c;直接将crx文件拖入到web浏览器上&#xff0c;如果…

vue element-ui的<el-tag>实现文字超过自动换行

目录 前言 解决方法 前言 今天我在使用element-ui的<el-tag>标签&#xff0c;但我发现一个问题&#xff0c;当我字体过多的时候&#xff0c;会出现这样的情况&#xff1a; 文字远远超出了蓝色框的宽度&#xff0c;那么如何解决呢&#xff1f; 解决方法 .el-tag{white…

VSCode RESTClient 返回结果中文乱码

VSCode RESTClient 返回结果中文总是显示为乱码 &#xff08;其实是 unicode 方式&#xff09; 进入设置 – 扩展 – REST Client &#xff0c; 找到 Rest-clien&#xff1a; DecodeEscaped Unicode Charactors &#xff0c;勾选上即可&#xff01; 再来运行就出来正常的中文了…

在线PDF格式转换器推荐,小圆象PDF转换器满足您的办公需求

作为上班族&#xff0c;我们都知道在办公应用中经常使用PDF文件。PDF具有较高的内容安全性&#xff0c;并且可以在多种设备上打开和浏览而不会出现格式混乱的问题。然而&#xff0c;PDF文件的一个短板是其不易编辑。通常情况下&#xff0c;我们需要将PDF文件转换为Word文档&…

Qt控件(按钮、单选、复选、list、tree、table)

一、布局 工具栏图标文字一起显示&#xff0c;背景透明。 二、代码 widget.ui <?xml version"1.0" encoding"UTF-8"?> <ui version"4.0"><class>Widget</class><widget class"QWidget" name"Widg…

Windows 安装 Redis

安装和配置Redis Redis的安装有两种安装形式&#xff0c;一种是安装包式&#xff0c;另一种是压缩包 注意&#xff1a;windows没有32位的&#xff0c;所以32位机器的朋友考虑换一下机器。 一、安装包式 1、windows环境下的redis需要去github上获取: https://github.com/Mic…