作为一个习惯于偷懒的程序,重复性的无聊内容是最让人无奈的事,就比如我们创建Unity脚本之后,需要手动调整生成的新脚本的格式、编码、内容;如果我们要编写的是编辑器或者服务器端脚本,需要修改的内容就会更多等等,因此我们要寻求一种偷懒的解决办法,针对这个问题,之前也使用过一些解决办法,今天就索性总结一下:
1、找到Unity版本对应的安装路径,修改对应的脚本模板:
XXX\Editor\Data\Resources\ScriptTemplates\下的模板,直接修改其格式、编码,这样之后在使用时,就可以省略其修改;如果需要修改其内容,则可以在脚本模板中使用一些通配符,然后在脚本生成中进行替换处理,比如我们将模板修改如下:
// Created by #DEVELOPER# on #CREATEDATE#.
using UnityEngine;
using System.Collections;
 
public class #SCRIPTNAME# : MonoBehaviour
{
    #region Some Comment
    
    #endregion 
    
    void Start ()
    {
        
    }
    
    void Update () 
    {
        
    }
}
然后针对性的写一个Editor进行处理,监听创建事件:
using UnityEngine;
using UnityEditor;
using System.Collections;
 
public static void OnWillCreateAsset (string _path)
{
    _path = _path.Replace(".meta", "");
    int tIndex = _path.LastIndexOf(".");
    string tFile = _path.Substring(tIndex);
    if(tFile != ".cs" && tFile != ".js" && tFile != ".boo")
    {
        return;
    }
 
    tIndex = Application.dataPath.LastIndexOf("Assets");
    _path = Application.dataPath.Substring(0, tIndex) + _path;
    tFile = System.IO.File.ReadAllText(_path);
    
    tFile = tFile.Replace("#CREATEDATE#", System.DateTime.Now.ToString("d")).Replace("#DEVELOPER#", PlayerSettings.companyName); 
 
    System.IO.File.WriteAllText(_path, tFile);
    AssetDatabase.Refresh();
}
该Editor脚本可以打包成unity,放入对应的XXX\Editor\Standard Packages\下,以后每次使用时,直接导入。
2、针对MonoDevelop工具本身进行扩展,XXX\MonoDevelop\Addins\目录下,放入扩展的插件,可以参考下
MonoDevelop file templates for Unity C# scripts,本身提供了可下载的插件,我们可以进行自身定制:不过由于MonoDevelop相对于VS的不足,因此,可能需要由扩展Mono改为扩展VS工具。
3、实现自身的脚本模板:此时我们仍然有较大的灵活性:
1)Unity本身是个很好的工具,给我们提供了很灵活的接口:
让我们先观察下XXX\Editor\Data\Resources\ScriptTemplates\下的模板命名,分析下命名规则,其实是有规律的,所有的模板命名都符合:
编号(可能是显示顺序)—创建时要显示在Unity中的问题—脚本创建之后默认的命名 . 脚本的扩展名 . txt
因此,我们可以将自己的模板放置在本目录下(Unity需要重启),这样在Unity创建时,选择我们自身的模板就可以按需创建了;同时结合方法2,我们就可以更懒了。
2)我们也可以选择自己创建模板,这里我们可以参考MOMO大神的博客:
 
这样合计合计,综合各种方法,我们就可以安心大胆的偷懒了!
凡此种种,重复性的劳动总能找到偷懒的方法的!

修改Unity脚本模板的方法合计的更多相关文章

  1. 如何修改新建脚本模板-ScriptTemplates(Unity3D开发之十五)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/44957631 ...

  2. 定制自己的Unity脚本模板

    有时候想给脚本添加符合自己编程习惯的内容,或是一些个性化信息.而作为一个多多少少有点强迫症的人,这种东西要加就得每个脚本都加上,不然看着多不爽! 于是就得每添加一个脚本就去修改一下,很麻烦. 但是,在 ...

  3. 使用vs2010编辑Unity脚本,配置方法

    在Unity界面上.选择Edit->Preferences->External Tools,External Script Editor一项即为编译器. 以Unity3D 4.3.4 f1 ...

  4. unity之定制脚本模板

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

  5. Tips12: 私人定制 专属的Unity3D 脚本模板

    在使用U3D的过程中,新建一个C#脚本,它包含着空的Start()和Update()函数.  根据个人习惯的不同,可能有些人有着自己的脚本风格,每次进去都增删改很麻烦,这里介绍一个更改新建脚本模板的方 ...

  6. 《转》Unity3D研究院编辑器之创建Lua脚本模板

    Unity里能创建 c#脚本模板,但是如果我想创建Lua脚本模板怎么办呢?拓展一下编辑器吧. 设置一下Lua脚本的模板地址 :  Assets/Editor/Lua/Template/lua.lua ...

  7. Unity 脚本的未来发展

    新技术之IL2CPP 最近,我们谈到了Unity 的WebGL . 在那篇文中我们简要谈论到脚本在 WebGL  中的运行的新技术称为"IL2CPP" .然而IL2CPP 所代表的 ...

  8. Unity3d自定义脚本模板

    这是一个小技巧,打开Unity安装目录,如: C:\Program Files (x86)\Unity\Editor\Data\Resources\ScriptTemplates /* * * Tit ...

  9. 5. Unity脚本的执行顺序

    Unity是不支持多线程的,也就是说我们必须要在主线程中操作它,可是Unity可以同时创建很多脚本,并且可以分别绑定在不同的游戏对象身上,他们各自都在执行自己的生命周期感觉像是多线程,并行执行脚本的, ...

随机推荐

  1. TDirectory.GetFileSystemEntries获取指定目录下的目录和文件

    使用函数: System.IOUtils.TDirectory.GetFileSystemEntries 所有重载: class function GetFileSystemEntries(const ...

  2. 在ajax当中使用url重写来避免url的暴露

    记得一次面试,有这样一道面试题:jsp页面当中需要用到ajax的实现,此时需要调用java的url:此时的问题是如果用户查看页面源码就能看到真是的url,这个问题如何避免.说实话,AJAX我用的只是皮 ...

  3. spring 下载地址(拷贝)

    Spring2.5.6 和Spring3.0.5所有jar下载地址spring jar包 官方下载地址 文档下载地址.2.56版本 和3.05版本http://s3.amazonaws.com/dis ...

  4. [BZOJ 1009] [HNOI2008] GT考试 【AC自动机 + 矩阵乘法优化DP】

    题目链接:BZOJ - 1009 题目分析 题目要求求出不包含给定字符串的长度为 n 的字符串的数量. 既然这样,应该就是 KMP + DP ,用 f[i][j] 表示长度为 i ,匹配到模式串第 j ...

  5. uva 12097 - Pie

    简单题,二分就行: #include<cstdio> #include<cmath> #define pi acos(-1.0) #define eps 0.000001 #d ...

  6. 【BZOJ 2005】[Noi2010]能量采集 (容斥原理| 欧拉筛+ 分块)

    能量采集 Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. 栋栋 ...

  7. 再探CRC

    之前写了CRC16的程序,虽说能用,却不知其所心然,现在要用CRC32,重温一遍,一下就通了.笔记如下 CRC我没记错的话是Cyclic Redundancy Code,Cyclic和Redundan ...

  8. linux解压cpio.gz类型文件

    1.  gunzip XXX.cpio.gz       –> 得到 XXX.cpio 文件 2.  cpio -idmv <XXX.cpio       –> 得到 XXX 文件夹

  9. BZOJ_4196_[NOI2015]_软件包管理器_(树链剖分)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=4196 给出一棵树,树上点权为0或1.u权值为1的条件是从根节点到u路径上的所有点权值都为1.u ...

  10. [GRYZ2014]递增子序列最大和

    [问题描述] 给定长度为n的正整数序列a1,a2,…,an. 求一个递增的子序列,和最大. [输入] 第一行,n,表示给定序列的个数. 第二行,n个用空格隔开的正整数. [输出] 递增子序列的最大和. ...