日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity3D利用代码生成脚本模板

發布時間:2023/12/10 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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利用代码生成脚本模板的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。