亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

unity學習教程之定制腳本模板示例代碼

2019-10-29 19:32:17
字體:
來源:轉載
供稿:網友

1、unity的腳本模板

新版本unity中的C#腳本有三類,第一類是我們平時開發用的C# Script;第二類是Testing,用來做單元測試;第三類是Playables,用作TimeLine中管理時間線上每一幀的動畫、聲音等。我們點擊創建腳本時,會自動生成unity內置的一套模板:

using System.Collections;using System.Collections.Generic;using UnityEngine;public class NewBehaviourScript : MonoBehaviour { // Use this for initialization void Start () {   }  // Update is called once per frame void Update () {   }}

如果我們開發時使用的框架有明顯的一套基礎模板, 那為項目框架定制一套模板會很有意義,這樣可以為我們省去編寫重復代碼的時間。這里介紹兩種方法。

2、修改默認腳本模板

打開unity安裝目錄,比如D:/unity2018/Editor/Data/Resources/ScriptTemplates,unity內置的模板腳本都在這里,那么可以直接修改這里的cs文件,比如我們將81-C# Script-NewBehaviourScript.cs.txt文件修改為如下,那下次創建C# Script時模板就會變成這樣:

//////////////////////////////////////////////////////////////////////       _ooOoo_        ////       o8888888o        ////       88" . "88        ////       (| ^_^ |)        ////       O/ = /O        ////      ____/`---'/____       ////     .' //|  |// `.       ////     / //||| : |||// /      ////     / _||||| -:- |||||- /      ////     | | /// - /// | |      ////     | /_| ''/---/'' | |      ////     / .-/__ `-` ___/-. /      ////    ___`. .' /--.--/ `. . ___      ////    ."" '< `.___/_<|>_/___.' >'"".     ////   | | : `- /`.;`/ _ /`;.`/ - ` : | |     ////   / / `-. /_ __/ /__ _/ .-` / /     ////  ========`-.____`-.___/_____/___.-`____.-'========   ////       `=---='        ////  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ////   佛祖保佑  永不宕機  永無BUG     //////////////////////////////////////////////////////////////////////using System.Collections;using System.Collections.Generic;using UnityEngine;public class #SCRIPTNAME# : MonoBehaviour { // Use this for initialization void Start () {  #NOTRIM# }  // Update is called once per frame void Update () {  #NOTRIM# }}

3、拓展腳本模板

上面講的第一種方法直接修改了unity的默認配置,這并不適應于所有項目,這里第二種方法會更有效,可以針對不同的項目和框架創建合適的腳本模板。

首先,先創建一個文本文件MyTemplateScript.cs.txt作為腳本模板,并將其放入unity project的Editor文件夾下,模板代碼為:

using System.Collections;using System.Collections.Generic;using UnityEngine;public class MyNewBehaviourScript : MonoBase { //添加事件監聽 protected override void AddMsgListener() { }  //處理消息 protected override void HandleMsg(MsgBase msg) {  switch (msg.id)  {   default:    break;  } }}

我們使用時,需要在Project視圖中右擊->Create->C# FrameScript 創建腳本模板,因此首先要創建路徑為Assets/Create/C# FrameScript的MenuItem,點擊創建腳本后,需要修改腳本名字,因此需要在拓展編輯器腳本中繼承EndNameEditAction來監聽回調,最終實現輸入腳本名字后自動創建相應的腳本模板。

unity,腳本,模板,代碼

代碼如下,將這個腳本放入Editor文件夾中:

using UnityEditor;using UnityEngine;using System;using System.IO;using UnityEditor.ProjectWindowCallback;using System.Text;using System.Text.RegularExpressions;public class CreateTemplateScript {  //腳本模板路徑  private const string TemplateScriptPath = "Assets/Editor/MyTemplateScript.cs.txt";  //菜單項  [MenuItem("Assets/Create/C# FrameScript", false, 1)]  static void CreateScript()  {    string path = "Assets";    foreach (UnityEngine.Object item in Selection.GetFiltered(typeof(UnityEngine.Object),SelectionMode.Assets))    {      path = AssetDatabase.GetAssetPath(item);      if (!string.IsNullOrEmpty(path) && File.Exists(path))      {        path = Path.GetDirectoryName(path);        break;      }    }    ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance<CreateScriptAsset>(),    path + "/MyNewBehaviourScript.cs",    null, TemplateScriptPath);  }  }class CreateScriptAsset : EndNameEditAction{  public override void Action(int instanceId, string newScriptPath, string templatePath)  {    UnityEngine.Object obj= CreateTemplateScriptAsset(newScriptPath, templatePath);    ProjectWindowUtil.ShowCreatedAsset(obj);  }  public static UnityEngine.Object CreateTemplateScriptAsset(string newScriptPath, string templatePath)  {    string fullPath = Path.GetFullPath(newScriptPath);    StreamReader streamReader = new StreamReader(templatePath);    string text = streamReader.ReadToEnd();    streamReader.Close();    string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(newScriptPath);    //替換模板的文件名    text = Regex.Replace(text, "MyTemplateScript", fileNameWithoutExtension);    bool encoderShouldEmitUTF8Identifier = true;    bool throwOnInvalidBytes = false;    UTF8Encoding encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier, throwOnInvalidBytes);    bool append = false;    StreamWriter streamWriter = new StreamWriter(fullPath, append, encoding);    streamWriter.Write(text);    streamWriter.Close();    AssetDatabase.ImportAsset(newScriptPath);    return AssetDatabase.LoadAssetAtPath(newScriptPath, typeof(UnityEngine.Object));  }}

然后,在project中,點擊創建C# FrameScript,輸入腳本名字,對應的腳本就已經創建好了

unity,腳本,模板,代碼

4、總結

上面介紹了兩種方案,第一種適合玩玩,第二種方法顯然逼格高一些,為不同的項目和框架定制一套腳本模板,可以讓我們少寫一些重復代碼。按照上面介紹的方法,我們同樣可以修改和拓展Testing、Playables的腳本模板,甚至shader,我們也可以定制模板。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91系列在线播放| 成人久久精品视频| 亚洲国产欧美在线成人app| 欧美一级淫片aaaaaaa视频| 555www成人网| 亚洲2020天天堂在线观看| 欧美激情网站在线观看| 欧美亚州一区二区三区| 日韩毛片在线看| 在线播放日韩欧美| 久久精品国产成人精品| 亚洲天堂免费观看| 色哟哟网站入口亚洲精品| 奇米四色中文综合久久| 日韩中文字幕免费| 亚洲女人天堂成人av在线| 欧美激情第1页| 最近中文字幕mv在线一区二区三区四区| 国产精品九九九| 久久免费高清视频| 欧美大秀在线观看| 91香蕉嫩草影院入口| 亚洲精品理论电影| 欧美另类老肥妇| 久久青草福利网站| 成人亚洲欧美一区二区三区| 青青草国产精品一区二区| 日韩欧美亚洲成人| 亚洲影院高清在线| 夜色77av精品影院| 国产精品久久久久久久天堂| 日韩电影网在线| 久久久免费精品视频| 欧美性猛交视频| 色婷婷av一区二区三区在线观看| 大胆人体色综合| 亚洲精品国产精品国产自| 日韩欧美aⅴ综合网站发布| 精品在线欧美视频| 色综合久久天天综线观看| 国产精品露脸自拍| 精品国产乱码久久久久久天美| 亚洲色图av在线| 俺去啦;欧美日韩| 久久成人国产精品| 中文字幕亚洲欧美一区二区三区| 欧美另类xxx| 国产午夜精品视频| 尤物精品国产第一福利三区| 久久久亚洲成人| 色偷偷偷综合中文字幕;dd| 久久亚洲综合国产精品99麻豆精品福利| 欧美日韩另类字幕中文| 成人免费大片黄在线播放| 日韩av电影在线播放| 姬川优奈aav一区二区| 欧美日韩免费区域视频在线观看| 亚洲精品日韩欧美| 中文字幕少妇一区二区三区| 亚洲va久久久噜噜噜| 亚洲国产成人精品久久久国产成人一区| 亚洲福利视频网站| 国产精品入口免费视频一| 日韩中文字幕网站| 最新亚洲国产精品| 国产v综合ⅴ日韩v欧美大片| 91久久精品日日躁夜夜躁国产| 久青草国产97香蕉在线视频| 久久免费视频这里只有精品| 91精品国产91久久久久久久久| 日本欧美爱爱爱| 亚洲黄色成人网| 日韩精品久久久久| 国产精品老女人精品视频| 欧美日韩ab片| 亚洲成人教育av| 亚洲国产高潮在线观看| 亚洲国产成人av在线| 粉嫩老牛aⅴ一区二区三区| 亚洲人成电影网| 国产精品扒开腿做爽爽爽男男| 亚洲黄色成人网| 国产精品亚洲片夜色在线| 欧美视频裸体精品| 久久激情五月丁香伊人| 日韩精品日韩在线观看| 69视频在线播放| 最新亚洲国产精品| 欧美视频精品一区| 国产一区二区三区在线播放免费观看| 欧美日韩国产999| yellow中文字幕久久| 日本欧美中文字幕| 性金发美女69hd大尺寸| 国产成人综合一区二区三区| 中文字幕日韩在线观看| 亚洲男子天堂网| 色yeye香蕉凹凸一区二区av| 久久久久久中文| 欧美成人精品不卡视频在线观看| 欧美激情亚洲精品| 日韩69视频在线观看| 亚洲精品www久久久| 日韩经典第一页| 超碰97人人做人人爱少妇| 国产成人综合久久| 久热精品视频在线观看| 亚洲福利在线观看| 91精品国产综合久久男男| 日韩在线视频导航| 久久精品男人天堂| 久久精品国产成人| 97国产真实伦对白精彩视频8| 日韩成人网免费视频| 亚洲福利视频网站| 热久久免费国产视频| 亚洲aⅴ日韩av电影在线观看| 亚洲精品久久久久久久久久久久久| 欧美中文字幕在线视频| 亚洲精品美女在线观看播放| 亚洲精品自拍第一页| 91精品视频在线播放| 亚洲成人av在线播放| 成人网在线视频| 国内精品模特av私拍在线观看| 欧美日韩免费在线| 福利视频第一区| 久久成人在线视频| 第一福利永久视频精品| 久久久999精品视频| 久久99精品视频一区97| 亚洲热线99精品视频| 亚洲色图在线观看| 欧美主播福利视频| 国产精品美女av| 欧美综合激情网| 成人午夜两性视频| 91黑丝在线观看| 日韩精品在线观看网站| 亚洲成人久久网| 亚洲高清不卡av| 欧美专区第一页| 在线精品国产成人综合| 色偷偷av亚洲男人的天堂| 欧美理论电影网| 精品视频在线播放免| 国产精品国产福利国产秒拍| 亚洲精品美女网站| 欧美日韩激情视频| 97avcom| 亚洲精选在线观看| 亚洲福利视频专区| 精品久久久久久电影| 欧美性高跟鞋xxxxhd| 国产精品福利片| 欧美精品一区在线播放| 久久精品国产清自在天天线| 91精品久久久久久久久久久| 色在人av网站天堂精品| 亚洲人成在线一二| 亚洲新中文字幕| 国产69久久精品成人| 亚洲国产日韩欧美在线图片| 亚洲成人黄色在线|