Unity 游戏框架搭建 2019 (三十二、三十三) 类的命名 & 代码文件命名 (2)

这个 MenuItem 可以删除了,因为功能已经在第一个示例实现过了。

第八个示例的第五个 MenuItem 方法 [MenuItem("QFramework/8.总结之前的方法/5.打开所在文件夹")] private static void MenuClicked5() { EditorUtil.OpenInFolder(Application.dataPath); }

同样也删除了。

第八个示例的第六个 MenuItem 方法 [MenuItem("QFramework/8.总结之前的方法/6.MenuItem 复用")] private static void MenuClicked6() { EditorUtil.CallMenuItem("QFramework/8.总结之前的方法/4.导出 UnityPackage"); EditorUtil.OpenInFolder(Path.Combine(Application.dataPath, "../")); }

这个不能马上删除,因为这是 EditorUtil.CallMenuItem 仅有的一个调用的地方。

所以要留着,但是这个功能其实已经失效了,因为 "QFramework/8.总结之前的方法/4.导出 UnityPackage" 这个 MenuItem 被我们刚才删掉了。好吧,这种危险的操作又做了一次。

不过没关系,因为不是很重要的功能,还好损失不大。那么这个 MenuItem 方法呢,要改成如下:

public class PreviousFunctions : MonoBehaviour { #if UNITY_EDITOR [MenuItem("QFramework/3.MenuItem 复用",false,3)] private static void MenuClicked() { EditorUtil.CallMenuItem("QFramework/2.复制文本到剪切板"); } #endif }

代码很容易理解。菜单名字改变了,所以我们的文件夹和类名都要改变。

更改后的目录如下:

006tNc79gy1fzfrddmxuoj30io0kin05.jpg

代码如下:

#if UNITY_EDITOR using UnityEditor; #endif using UnityEngine; using System; using System.IO; namespace QFramework { public class EditorUtil { #if UNITY_EDITOR public static void CallMenuItem(string menuPath) { EditorApplication.ExecuteMenuItem(menuPath); } public static void OpenInFolder(string folderPath) { Application.OpenURL("file:///" + folderPath); } public static void ExportPackage(string assetPathName,string fileName) { AssetDatabase.ExportPackage(assetPathName, fileName, ExportPackageOptions.Recurse); } #endif } public class ReuseMenuItem : MonoBehaviour { #if UNITY_EDITOR [MenuItem("QFramework/3.MenuItem 复用",false, 3)] private static void MenuClicked() { EditorUtil.CallMenuItem("QFramework/2.复制文本到剪切板"); } #endif } }

我们发现其实还有一个类 EditorUtil,刚好 ReuseMenuItem 是 EditorUtil 中 CallMenuItem 的使用代码。
所以可以进行合并,合并之后代码如下:

#if UNITY_EDITOR using UnityEditor; #endif using UnityEngine; namespace QFramework { public class EditorUtil { #if UNITY_EDITOR [MenuItem("QFramework/3.MenuItem 复用",false,3)] private static void MenuClicked() { CallMenuItem("QFramework/2.复制文本到剪切板"); } public static void CallMenuItem(string menuPath) { EditorApplication.ExecuteMenuItem(menuPath); } public static void OpenInFolder(string folderPath) { Application.OpenURL("file:///" + folderPath); } public static void ExportPackage(string assetPathName, string fileName) { AssetDatabase.ExportPackage(assetPathName, fileName, ExportPackageOptions.Recurse); } #endif } }

但是类的名字,改变了,而类所在的文件名还是 ReuseMenuItem,这应该怎么办?

这是一个规则之间的互相制衡导致的冲突。

笔者的解决办法就是,把代码名字改成 EditorUtil,最起码类名和文件名一致了。功能名和菜单名也一致了。而 EditorUtil 总好过一个 CustomShortCut 或者 PreviousFunctions 这样的命名。而为什么 EditorUtil 更好,那么这个以后会专门讲,现在呢,我们就先这样做就好了。

文件名改完之后,目录结构如下图所示.

006tNc79gy1fzfrdgs8gkj30ka0i6god.jpg

这样完整的第八个示例,就全部整理完了,通过第八个示例整理出来了第三个示例。删除了很多冗余代码,很有成就感。

今天的内容就这些。拜拜~

转载请注明地址:凉鞋的笔记:liangxiegame.com

更多内容

QFramework 地址:https://github.com/liangxiegame/QFramework

QQ 交流群:623597263

Unity 进阶小班

主要训练内容:

框架搭建训练(第一年)

跟着案例学 Shader(第一年)

副业的孵化(第二年、第三年)

权益、授课形式等具体详情请查看《小班产品手册》:https://liangxiegame.com/master/intro

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsffds.html