|

楼主 |
发表于 2016-2-3 13:44:57
|
显示全部楼层
对于其他想学习自定义UI的新手,我在这里先给一些同样作为新手的我学习UI的入门过程:
DOTA2 自定义UI目前引擎提供2种方式:
a、Panorama UI = xml+ css+js 类似网页开发
b、ScaleForm UI= flash(fla+as) Flash动画
官方强调正逐步抛弃ScaleForm UI 方式,这对于大家是一个好消息。
大家不必掌握难度更高的Flash制作过程和AactionScript脚本。当然掌握的越多越好,但是对于新手还是不要贪多,集中精力突破Panorama UI 方式。
对于如何学习Panorama UI :
1、了解Panorama UI 内容:
a:自定义加载图
b:自定义控制台
建议先从制作简单加载图开始,在制作自定控制台UI。控制台UI涉及到服务器和客户端的事件、数据通讯,对新手有些难度!这里需要额外掌握DOta2 引擎提供的Panorama JavaScript API。
2、了解整体构架xml+css+js,各个击破
3、了解文件体系
自定义加载图和自定义控制台 文件体系基本一致:只不过入口文件名不同:
a:自定义加载图 : /custom_loading_screen.xml
b:自定义控制台 :/custom_ui_manifest.xml
4、动态Panorama UI
这是利用DOTA2提供的4条API 和xml文件,在Lua脚本中动态创建Hud UI元素。
DynamicHud_Create | void DynamicHud_Create(int int_1, string string_2, string string_3, handle handle_4) | 为某玩家建立一个新的自定义用户界面元素。 ( int PlayerID /*-1 means everyone*/, string ElementID /* should be unique */, string LayoutFileName, table DialogVariables /* can be nil */ ) | DynamicHud_Destroy | void DynamicHud_Destroy(int int_1, string string_2) | 删除一个自定义用户界面元素。 ( int PlayerID /*-1 means everyone*/, string ElementID ) | DynamicHud_SetDialogVariables | void DynamicHud_SetDialogVariables(int int_1, string string_2, handle handle_3) | 为已有的用户界面元素添加/修改一个会话变量。( int PlayerID /*-1 means everyone*/, string ElementID, table DialogVariables ) | DynamicHud_SetVisible | void DynamicHud_SetVisible(int int_1, string string_2, bool bool_3) | 切换已有的用户见面元素的可见性。 ( int PlayerID /*-1 means everyone*/, string ElementID, bool Visible ) |
所有有关Panorama UI 的知识,您都可以在wiki上找到!
Panorama UI 确实及其强大,对于是开发自定义游戏,尤其是2D游戏,绝对让你脑洞打开!迸发出绝佳创意!
对于这部分我可能仅会对javsscript api 进行一些实例解析,对于大部分内容,大家还是看wiki,讲的很详细了!
|
|