Unity3D利用代码生成脚本模板
? ? ? ? ? ? ? ? ? ? ? ? ? Unity3D利用代碼生成腳本模板
目錄
1、博客介紹
2、內容
(1)生成腳本展示
(2)核心
3、推送
4、結語
1、博客介紹
? ? ? ?最近一直在學習框架,看到了一點關于在編輯器下去自動生成UI相關代碼的邏輯,感覺很好用,就拆解的去學習,這邊博客先介紹一下利用代碼去生成腳本,我看其他的博客生成腳本的時候基本都是使用StringBuilder去一行一行的拼,感覺很麻煩,看了涼鞋大大地QFramework中生成的部分,中間是通過一個模本腳本來生成自己需要的腳本,感覺很方便,這里博主寫的很簡單,涼鞋老師的QFramework中有更加豐富的寫法和用法,有興趣的同學可以跳轉一下,結語有推送。
2、內容
(1)生成腳本展示
(2)核心
第一項:創建我們的模板腳本,我們需要在這個模板腳本內寫下我們需要生成的一些通用方法。
using UnityEngine;namespace TemplateNameSpace {/// <summary>/// 代碼模板/// Author:Sun/// Time:2019/5/29 23:58/// </summary>public class ScriptTemplate : MonoBehaviour {public void OnInit(){}public void OnEvent(){}public void OnShow(){}public void OnHide(){}}}第二項:創建腳本,修改文件名和類名,剩下的我們就只需要指定一些變量,比如是腳本名類名,命名空間啥的,然后使用字符串Replace的替換方法,把模板內的對應項替換掉,最后把替換好的內容寫入文件內就可以了。
?
using System.IO; using System.Text; using UnityEditor; using UnityEngine;/// <summary> /// 創建代碼測試 /// Author:Sun /// Time:2019/5/29 23:59 /// </summary> public class CodeCreate : MonoBehaviour {/// <summary>/// 腳本名/// </summary>public string ScriptName;/// <summary>/// 命名空間/// </summary>public string NameSpace;/// <summary>/// 模板內容/// </summary>private string _templateContent;/// <summary>/// 模板路徑/// </summary>private string _templatePath;/// <summary>/// 生成路徑/// </summary>private string _spawnPath;private void Start(){_templatePath = "Assets/ScriptTemplate.cs";_spawnPath = "Assets/SpawnCode/";//讀取模板內容_templateContent = File.ReadAllText(_templatePath);}private void OnGUI(){if (GUI.Button(new Rect(0,0,200,200),"創建模板腳本" )){if (ScriptName!=null){//生成路徑var path = _spawnPath + ScriptName+".cs";//替換類名_templateContent = _templateContent.Replace("ScriptTemplate",ScriptName);if (NameSpace!=null){//替換命名空間_templateContent = _templateContent.Replace("TemplateNameSpace",NameSpace);}//將組織好的內容寫入文件File.WriteAllText(path, _templateContent, Encoding.UTF8);//刷新一下資源,不然創建好文件后第一時間不會顯示AssetDatabase.Refresh();}else{Debug.LogWarning("文件名不能為空");}}} }3、推送
本項目工程源碼:https://github.com/KingSun5/Study_CreateCode
QFramework:https://github.com/liangxiegame/QFramework
4、結語
? ? ? ?很簡單的一個創建代碼的思路,希望對看到的同學有所幫助,下一篇博客寫一下直接通過編輯器拓展在編輯狀態下生成我們想要的代碼模板,另博主能力有限,若文中有出現什么錯誤的地方,歡迎各位評論指摘。
? ? ? ?QQ交流群:806091680(Chinar)
? ? ? ?該群為CSDN博主Chinar所創,推薦一下!我也在群里!
??? ? ?本文屬于原創文章,轉載請著名作者出處并置頂!!!!!
總結
以上是生活随笔為你收集整理的Unity3D利用代码生成脚本模板的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(1529):钩子函数--文档分
- 下一篇: 前端学习(1860)vue之电商管理系统