找回密码
 立即注册
查看: 225|回复: 5

为Unity搭建完善的的Cmd工作环境

[复制链接]
发表于 2023-2-16 12:56 | 显示全部楼层 |阅读模式
前言

我们在使用Unity开发游戏的时候,往往会需要GM工具来测试游戏稳定性,在游戏中呼出对话框输入命令行执行对应GM代码是非常高效的(下图来自B站Up:https://www.bilibili.com/video/BV1v741187To)


此外,对于项目中不断增加的MenuItem编辑器拓展,每次使用工具都要去翻找对应的条目也是很麻烦的一件事,尤其是对于嵌套层次稍深的条目。。。



如果有个插件可以在Editor中输入Cmd执行对应MenuItem代码就好了,幸运的是上面提到的两个问题,我都找到了解决方案
正文

Runtime Cmd-UnityIngameDebugConsole

首先是我们Runtime的Cmd,推荐:https://github.com/yasirkula/UnityIngameDebugConsole插件
下载之后我们只需要把



放到场景中即可
如果我们想要在游戏中根据命令执行某个方法(这是最简单直接的用法,同样还支持参数传递,返回值,参数重定向等多种功能,可以去插件Readme查看更多)
[ConsoleMethod("测试await/async的Log","这是一条测试await/async的Log")]
        public static async void TestAsyncLog()
        {
            Log.Info("这是一个测试常规的Log--一秒后会Log加密通话");
            await Game.Scene.GetComponent<TimerComponent>().WaitAsync(1000);
            Log.Info("这是一个测试常规的Log--别比别比,别比巴伯");
        }
然后打开Console,在对话框输入对应Cmd命令(自带智能提示和补全功能),选中Cmd,点击回车即可运行


Editor Cmd-MonKey Commander

然后是Editor下的Cmd(如果只是在Unity编辑器中,他可以同时担任Editor和Runtime的Cmd),推荐:https://assetstore.unity.com/packages/tools/utilities/monkey-productivity-commands-119938?locale=zh-CN
对于它的自定义Cmd方法,官网文档有很详细的介绍:https://sites.google.com/view/monkey-user-guide/command-creation
比如我们想让一个原本MenuItem方法变成我们Cmd启动的,可以这样
[Command("ETEditor_RsyncEditor","Rsync同步",Category = "ETEditor")]
        private static void ShowWindow()
        {
            GetWindow(typeof (RsyncEditor));
        }
然后我们开启Monkey Command Console(默认热键是`,可以在Setting中进行修改



输入对应Cmd,然后选中,点击回车即可运行


我在使用Monkey Commander中遇到了一个奇怪的问题(Unity 2019.4.8 ltf):每次修改代码进行编译的时候都会报这个错误


猜测应该是Unity 2019 Editor底层的缓存机制更改,导致插件运行到这部分代码时会出错,所以我们可以使用dnSpy对其dll进行更改并且重编译即可


总结

这两个插件的Cmd实现核心原理都很简单,都利用了C#强大的反射机制,但是他们提供的周边拓展如果自己实现的话,需要颇费一些功夫

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2023-2-16 13:00 | 显示全部楼层
太强了[爱心]
发表于 2023-2-16 13:03 | 显示全部楼层
[爱心]
发表于 2023-2-16 13:08 | 显示全部楼层
烟雨大佬好棒!
[超开心]
发表于 2023-2-16 13:09 | 显示全部楼层
找着找着又到你这来了,233333333333
发表于 2023-2-16 13:09 | 显示全部楼层
这几天35$一批插件包括monkey,但我还是不会入手[飙泪笑]
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-3 14:48 , Processed in 0.237077 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表