Unity3D 脚本模板插件
Script Template Toolkit
概述
Unity3D 脚本模板快速编辑,保存。脚本文件添加头注释,自动标注创建日期以及版权时间。
问题
- 在使用Unity3D创建脚本文件时,希望Unity3D编辑器自动按照个人喜好预定义的模板来创建各类脚本文件,例如添加文件头注释等需求。
- 希望在脚本头注释中自动标注脚本创建日期,以及根据创建日期标注版权时间(例如:2017-2018)。
条件
- 实际上,Unity3D将各类脚本文件模板放在了安装目录下(例如:Unity 5.4.1f1\Editor\Data\Resources\ScriptTemplates)。
- 在Unity3D提供的API中,可以通过AssetModificationProcessor类的OnWillCreateAsset方法捕获Unity3D编辑器创建Asset(包括脚本文件)事件。
方案
编辑
- 编写Unity3D扩展编辑器代码,通过继承EditorWindow绘制自定义编辑器窗口来编辑/保存Unity3D的各类脚本文件模板(文本文件)。
- 预定义标注字符串,“#CREATETIME#”标注创建日 期,
“#COPYRIGHTTIME#”标注版权时间声明,在编辑模板时,在需要插入创建日期的地方使用“#CREATETIME#”标注即可,插入版权时间同理。 - 使用预定义标注字符串编辑个人喜好风格的脚本文件模板。
创建
- 在Unity3D编辑器的Project面板通过鼠标右键菜单创建脚本文件(例如:C#)时,Unity3D引擎会将相应的模板文件里边的内容全部拷贝到新建的文件中,且自动将“#SCRIPTNAME#”替换为新建文件时输入的文件名。但是,“#CREATETIME#”,“#COPYRIGHTTIME#”是我们自定义的标注字符串,Unity3D引擎不会识别,也不会将其替换成我们预期的内容。
- 编写扩展编辑器代码,继承AssetModificationProcessor类并实现其OnWillCreateAsset(string assetPath)方法以捕获Unity3D编辑器创建Asset(包括脚本文件)事件以及处理我们自定义的标注字符串。
- 捕获到创建Asset事件,检查文件扩展名,如果是.cs或.js或.shader或.compute则说明创建的是脚本文件,也就是说Unity3D引擎会按照相应的模板(例如C#,我们之前已经将其编辑成个人喜好风格的文本)来创建。(扩展编辑器代码)读取新建文件的内容,将
“#CREATETIME#”替换成当前日期,将“#COPYRIGHTTIME#”替换成当前年份-下个年份。
实现
扩展编辑器
- ScriptTemplateEditor.cs 读取/编辑/保存 Unity3D各类脚本模板文件。
- ScriptTemplateModifier.cs 捕获创建事件,替换预定义标注字符串为其具体含义的内容。
脚本模板示例
- Template 文件夹下存放各类脚本模板文件的示例,以供读者编写自己风格的模板时参考。
源码
源码托管地址
Unity3D 脚本模板插件相关推荐
- 开发Unity3D空战类插件 战机游戏模板Pro版本
此战机游戏模板插件是本人由Fighter Flight Template Pro和Fighter Weapon System Template整合开发完成. 使用本模板,可以帮助您轻松地创建您自己的战 ...
- 开发Unity3D空战类插件 战机游戏模板
此战机游戏模板插件是本人由由Fighter Flight Template和Fighter Weapon System Template整合开发完成. 使用本模板,可以帮助您轻松地创建您自己的战机类游 ...
- unity3d热更新插件uLua
转自:http://blog.sina.com.cn/s/blog_930ffa0b0102vbat.html 前言 IOS不能热更新,不是因为不能用反射,是因为 System.Reflection. ...
- unity3d 脚本参考-技术文档
unity3d 脚本参考-技术文档 核心提示:一.脚本概览这是一个关于Unity内部脚本如何工作的简单概览.Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的.在脚本对象内部不同志的函数被 ...
- Unity脚本生成插件:Script Create Dialog
最近写代码又犯懒了... 感觉每次新建脚本都要写一堆简单重复的东西好无聊,所以搜索了一下有没有自动生成脚本的插件.结果还真被我发现了,官方在N久之前就制作了自动生成脚本的插件[Script Creat ...
- vim模板插件vim-template的使用
vim模板插件vim-template的使用 之前使用IDE编程,模板是最基本的功能,现在切换到vim,用惯了模板的我,对于每次写代码都来上 # -*- coding: utf-8 -*- # # 日 ...
- 关于Unity3D脚本调试
http://hi.baidu.com/ytxr_/item/f1a0a436c2fd6cf3e6bb7a1b Unity3D 是一个基于 Mono 的跨平台游戏引擎,支持 PC .MAC . And ...
- Unity3D 200个插件免费分享
插件清单: 2D_Toolkit_1.51 动画开发插件包 FingerGestures 触摸插件 ORK_Okashi_RPG_Kit Unity3D角 ...
- Unity3d 脚本开发代码规范
代码规范 代码规范问题是这样的一个问题:高性价比,不被重视,实际做的时候难以做好 统一的规范有利于代码简洁,进而利于控制复杂度,关于复杂度可以参见之前的文章(http://blog.csdn.net/ ...
- Unity 自定义脚本模板 添加头部注释
自定义模板的一些问题 其实有很多文章都写了自定义模板,添加头部注释,例如这篇文章. 都是要找到untiy 自己的模板c# txt,然后写入相关的替代码,在匹配更换,其中的问题: 当换电脑,或者unit ...
最新文章
- pytorch多gpu并行训练操作指南
- doker zookeeper kafka单机搭建
- 损失函数为什么用平方形式(二)
- 物联网实验4 alljoyn物联网实验之手机局域网控制设备
- 2017-2018-1 20179215 《从问题到程序》第五章
- sharepoint 2010 使用WinForm获取 SPSite对象
- 三菱plc编程实例3000_三菱入门PLC编程PLC系统程序包括哪些
- zookeeper学习03 使用场景
- 基于RDMA和NVM的大数据系统一致性协议研究
- TX2+GStreamer+OpenCV读取显示网络摄像头
- jquery操作文档节点的属性
- maven pom 文件的 scope,scope=system 时打包打不进
- 强行进入远程计算机,远程桌面强制连接命令
- Flash闪存储存原理以及NAND flash、NOR flash(详细)对比总结
- 【转】数据恢复WINHEX教程
- 终生学习者,永远劳苦命!
- python 3.7 安装 spyder‑kernels 模块
- 习题6-8 单词首字母大写 (15 分)
- HTML圆和圆角柜形的制作,圆角柜是典型的明式家具,详细解析圆角柜的智慧法则...
- 有关OLE对象的使用(1)
热门文章
- shl归纳推理测试题库_shl归纳推理测试答案
- Hive SQL面试题(附答案)
- scratch3.0教程(持续更新)
- matlab傅里叶光学仿真,计算傅里叶光学实现衍射图样的计算
- 代数数论初步(全书)
- 获得每种调制方式中每个信噪比的准确度
- 解决:fatal error: opencv2/xfeatures2d.hpp: No such file or directory
- MCMC算法之Metropolis-Hastings(MHs)算法(Matlab代码)
- Python基础笔记(手写版)
- 曙光服务器bios开启vt虚拟化,BIOS怎么开启虚拟化技术VT