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 脚本模板插件相关推荐

  1. 开发Unity3D空战类插件 战机游戏模板Pro版本

    此战机游戏模板插件是本人由Fighter Flight Template Pro和Fighter Weapon System Template整合开发完成. 使用本模板,可以帮助您轻松地创建您自己的战 ...

  2. 开发Unity3D空战类插件 战机游戏模板

    此战机游戏模板插件是本人由由Fighter Flight Template和Fighter Weapon System Template整合开发完成. 使用本模板,可以帮助您轻松地创建您自己的战机类游 ...

  3. unity3d热更新插件uLua

    转自:http://blog.sina.com.cn/s/blog_930ffa0b0102vbat.html 前言 IOS不能热更新,不是因为不能用反射,是因为 System.Reflection. ...

  4. unity3d 脚本参考-技术文档

    unity3d 脚本参考-技术文档 核心提示:一.脚本概览这是一个关于Unity内部脚本如何工作的简单概览.Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的.在脚本对象内部不同志的函数被 ...

  5. Unity脚本生成插件:Script Create Dialog

    最近写代码又犯懒了... 感觉每次新建脚本都要写一堆简单重复的东西好无聊,所以搜索了一下有没有自动生成脚本的插件.结果还真被我发现了,官方在N久之前就制作了自动生成脚本的插件[Script Creat ...

  6. vim模板插件vim-template的使用

    vim模板插件vim-template的使用 之前使用IDE编程,模板是最基本的功能,现在切换到vim,用惯了模板的我,对于每次写代码都来上 # -*- coding: utf-8 -*- # # 日 ...

  7. 关于Unity3D脚本调试

    http://hi.baidu.com/ytxr_/item/f1a0a436c2fd6cf3e6bb7a1b Unity3D 是一个基于 Mono 的跨平台游戏引擎,支持 PC .MAC . And ...

  8. Unity3D 200个插件免费分享

    插件清单:  2D_Toolkit_1.51     动画开发插件包  FingerGestures           触摸插件  ORK_Okashi_RPG_Kit       Unity3D角 ...

  9. Unity3d 脚本开发代码规范

    代码规范 代码规范问题是这样的一个问题:高性价比,不被重视,实际做的时候难以做好 统一的规范有利于代码简洁,进而利于控制复杂度,关于复杂度可以参见之前的文章(http://blog.csdn.net/ ...

  10. Unity 自定义脚本模板 添加头部注释

    自定义模板的一些问题 其实有很多文章都写了自定义模板,添加头部注释,例如这篇文章. 都是要找到untiy 自己的模板c# txt,然后写入相关的替代码,在匹配更换,其中的问题: 当换电脑,或者unit ...

最新文章

  1. pytorch多gpu并行训练操作指南
  2. doker zookeeper kafka单机搭建
  3. 损失函数为什么用平方形式(二)
  4. 物联网实验4 alljoyn物联网实验之手机局域网控制设备
  5. 2017-2018-1 20179215 《从问题到程序》第五章
  6. sharepoint 2010 使用WinForm获取 SPSite对象
  7. 三菱plc编程实例3000_三菱入门PLC编程PLC系统程序包括哪些
  8. zookeeper学习03 使用场景
  9. 基于RDMA和NVM的大数据系统一致性协议研究
  10. TX2+GStreamer+OpenCV读取显示网络摄像头
  11. jquery操作文档节点的属性
  12. maven pom 文件的 scope,scope=system 时打包打不进
  13. 强行进入远程计算机,远程桌面强制连接命令
  14. Flash闪存储存原理以及NAND flash、NOR flash(详细)对比总结
  15. 【转】数据恢复WINHEX教程
  16. 终生学习者,永远劳苦命!
  17. python 3.7 安装 spyder‑kernels 模块
  18. 习题6-8 单词首字母大写 (15 分)
  19. HTML圆和圆角柜形的制作,圆角柜是典型的明式家具,详细解析圆角柜的智慧法则...
  20. 有关OLE对象的使用(1)

热门文章

  1. shl归纳推理测试题库_shl归纳推理测试答案
  2. Hive SQL面试题(附答案)
  3. scratch3.0教程(持续更新)
  4. matlab傅里叶光学仿真,计算傅里叶光学实现衍射图样的计算
  5. 代数数论初步(全书)
  6. 获得每种调制方式中每个信噪比的准确度
  7. 解决:fatal error: opencv2/xfeatures2d.hpp: No such file or directory
  8. MCMC算法之Metropolis-Hastings(MHs)算法(Matlab代码)
  9. Python基础笔记(手写版)
  10. 曙光服务器bios开启vt虚拟化,BIOS怎么开启虚拟化技术VT