| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Unity3D编辑器拓展——通过模板创建Lua脚本的两种方式(二) -> 正文阅读 |
|
[游戏开发]Unity3D编辑器拓展——通过模板创建Lua脚本的两种方式(二) |
上一篇文章介绍了第一种方式:??Unity3D编辑器拓展——通过模板创建Lua脚本的两种方式(一)_Supernova Kai的博客-CSDN博客 下面介绍第二种方式: 本文的有关代码转载自:Unity3D 扩展编辑器实现创建Lua脚本 - 知乎 (zhihu.com) 声明:本文转载已得到原文章作者同意,有兴趣的可以关注原作者的知乎账号。 直接附上代码:(代码后面的部分是我个人的一些理解,如有错误,欢迎指出)
? ? ? ? 上面代码的解释: ? ? ? ? 1、ProjectWindowUtil.StartNameEditingIfProjectWindowExists()方法 ????????StartNameEditingIfProjectWindowExists是一个在ProjectWindowUtil中的公有方法,其作用是将焦点设置到某文件并进入重命名,因为我们知道当我们右键创建代码的时候除了会选中该代码文件,同时还是处于重命名代码的状态的,此时代码尚未编译,当我们结束重命名后才真正进入到上面代码中CreateScriptAssetAction的Action方法, ? ? ? ? 其定义如下:
? ? ? ? 参数: ? ? ? ? int instaceID: ? ? ? ? EndNameEditAction endAction: ? ? ? ? string pathName:新建文件的路径 ? ? ? ? Texture2D icon:新文件的图标 ? ? ? ? string resourceFile:模板的路径 ? ? ? ? 这个方法的工作流程:通过ScriptableObject.CreateInstance<>()创建一个实例,并进入重命名? ? --》? 重命名结束时,会调用CreateScriptAssetAction的Action方法,并将pathName和resourceFile作为参数传给Action方法。(也就是说这个方法的第二个参数endAction可以理解为就是结束重命名时需要执行的一个回调,一个“行为”) ? ? ? ? 2、GetSelectedPathOrFallback方法
? ? ? ? GetSelectedPathOrFallback方法用于Unity编辑器下获取当前选择的文件路径 ? ? ? ? ????????Selection.GetFiltered()方法? ?? ? ? ? ? ?此方法用于获取当前选择的对象;type参数为选择的对象类型,我们这里是Object,即所有的选择对象都会返回;mode参数用于进一步限制,我们这里mode是Selection.Assets,意思是仅返回Assets目录中的资源对象。 ? ? ? ? 上面第五行代码通过GetFiltered方法获取所有选择的对象后,对找个Object[]进行遍历,获取到每一个obj,然后在用过第七行代码的AssetDatabase.GetAssetPath()方法获取该对象的路径 ? ? ? ??AssetDatabase.GetAssetPath()方法通过传入资源对象本身,即可找到资源对象的路径 ???????? ? ? ? ? ?第八行代码,string.IsNullOrEmpty(path)判断路径是否为空,但是前面有一个取反!, ????????!string.IsNullOrEmpty(path) && File.Exists(path)这段条件的含义是,当路径不为空,并且这个路径已经有文件时,执行if语句中的内容:Path.GetDirectoryName(path)方法,返回指定目录的根目录,并且break。(当路径不为空并且路径已经存在文件的情况时,给path重新赋值给根目录,并且break出去;因为路径已有文件的话在这个路径创建文件会把原来的文件给覆盖了) ? ? ? ? 当不满足这个条件,也就是这个路径下没有文件的时候,返回这个路径。 ? ? ? ? 3、CreateScriptAssetAction中的Action方法 ? ? ? ? 逻辑很简单,就是简单的文件读写,写读取模板的内容,把内容存到一个string;然后创建一个新文件,把这个string写入,正则替换一下,保存文件,刷新资源就行了。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 23:39:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |