本文主要是介绍0009 用VisualStudio设计Max工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这次分享个独家专利^)^:在Visual Studio中设计3dsMax脚本工具界面。
某次做原型设计时,需求改来改去,实在懒得搞GUI;虽然也尝试在Axure RP里画原型,但还是Visual Studio更顺手,也更容易测试一些交互,就直接在VS里做了。后来突发奇想,想实验一把能否直接用到Max里去,结果没想到成功了,效果还挺好。发现了新大陆,记录一下。
开始:
在VS里新建Windows Form项目:
根据自己的需要进行设计:
使用VS一个好处是控件很丰富,简直应有尽有,有些控件在Max里就没有那么简单能用起来了,比如表格类,标签页等;
另外就是完全可以独立于3dsMax先测试一下:
由于最终要在Max中注册相应的控件事件(如按钮点击),VS里得把相应的控件都公开出来。修改起来很简单,选中多个控制在属性那边改或者直接在代码里改private为public:
当工具界面觉得ok后,修改项目属性,输出类型改为类库:
将原本可以独立运行的exe编译成dll:
到Max里写一点脚本:首先是热重载DLL,意味着可以一边在VS那边修改GUI,编译; 一边在Max里重新加载最新的DLL,不需要反复重启Max:
一旦DLL被载入,就可以实例化GUI窗口了,使用show查看一下我们公开的控件是否可以看到;
实例化通过dotNetObject “Namespace.ClassName”进行:
定义自己的函数,并注册按钮点击事件,注意设置控件生命周期,避免被Max垃圾回收干扰:
最后Show出窗口来测试一下gWin.Show(),想要作为对话框使用时就用gWin.ShowDialog():
是不是挺完美?还差一点点,这个窗口现在不是Max的子窗口,最小化Max的时候,它不会跟随最小化,再修改指定一下父窗口:
已经接近完美,but
One more thing...
发现没,这样设计GUI感觉倒是有快有好,VS也超级牛,让人爽到不行。但是跟Max明显不融合啊,最明显的是界面颜色,前景、背景;
可不可以来点FreeStyle?
要做到完美也是可以的,只要请出colorMan, 然后转为dotNet的颜色,在窗口Load事件中指定前景色、背景色就搞定了,有些控件可能需要指定style之类...细节可以再发掘。
Max2014中效果:
Max2019中效果:
总之,使用Visual Studio加C#写Windows Form这种方案还真是又快又好。
简单概括一下就是:
1. VS里通过WindowsFrom设计UI, 公开需要在Max那边处理的控件;
2. 编译成DLL后加载进3dsMax里,在Max里注册控件相应事件;
3. 指定父窗口以及调整与外观上的一些细节;
Git项目地址:
https://github.com/WendyAndAndy/MaxDev.git
这篇关于0009 用VisualStudio设计Max工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!