纳金网

标题: [unity3d] GUI [打印本页]

作者: 晃晃    时间: 2011-8-16 08:10
标题: [unity3d] GUI
搞个简单的menu
1. 在 Project 面板编辑个 .js 脚本,写上:

function OnGUI () {
GUI.Box (Rect (10,10,100,90), "Loader Menu");



if (GUI.Button (Rect (20,40,80,20), "Level 1")) {
// do sth.
}
}




2. 把 .js 脚本文件拖到 Hierarchy面板 的 MainCamera 上。(将 Script attach 到一个 GameObject)
3. 然后点一下播放按钮:
4. 就可以在 Game视图 看到你创作的 menu 啦



对于 Rect 参数,分别表示 (x, y, width, height)。



给button弄个图片
1. 搞个图片出来,拖到 Project面板内,让 Unity 自动将图片复制到 Asset 目录。
2. 然后修改脚本:

var ButtonPic : Texture2D;



function OnGUI () {
GUI.Box (Rect (10,10,100,90), "Loader Menu");



if (GUI.Button (Rect (20,40,80,20), ButtonPic)) {
// do sth.
}
}

3. 在 Hierarchy面板 中选中 MainCamera,然后看 Inspector面板





4. 把图片拖到 ButtonPic变量 上,搞定。








Purely Simple, huh~




关于 Unity 提供了哪些UI控件,参考这里:
http://unity3d.com/support/documentation/Components/gui-Controls.html



GUIStyle与GUISkin
UnityUI 也是支持更换不同风格外观的。
GUIStyle,影响独立的某个控件的外观。
GUISkin,一对GUIStyle的集合,影响所有控件的外观。



创建控件的第三个参数,决定了使用啥Style。
var customButton : GUIStyle;

function OnGUI () {
GUI.Button (Rect (10,10,150,20), "I am a Custom Button", customButton);
}

这样弄了个 customButton 的变量,则在 Inspector面板 可以直接设置此Style。





创建 GUISkin,从 Assets => Create => GUI Skin。然后修改脚本代码:

var mySkin : GUISkin;
function OnGUI () {
GUI.skin = mySkin;
GUI.Box(Rect(10,10,100,90), "Loader Menu");

}
并把刚刚创建的 GUISkin 对象拖到 Inspector视图 的mySkin 变量上。
可以看到 GUISkin 就是 Style 的集合,定义了各种控件的外观。





Layout Modes
对于"可能动态创建控件"的情况,UnityGUI提供了 Automatic Layout 的功能,相当于一层 window 套一层 window 的概念。
http://unity3d.com/support/documentation/Components/gui-Layout.html



Compound Control(复合控件)
自己写函数,定义复合控件。
http://unity3d.com/support/documentation/Components/gui-Extending.html



Extending the Editor
还可以通过 UnityGUI 扩展 Unity编辑器 本身。coool~
http://unity3d.com/support/documentation/Components/gui-ExtendingEditor.html



总结
看完 UnityGUI 的教程,Unity 对 UI 的基本支持是有了,但对于大型游戏,其缺少一个可视化的编辑器,以及比较好的事件处理模型。
下面有两个进一步研究的方向。



GUIX,Unity GUI 可视化编辑器($97)
http://www.ennanzus-interactive.com/developer/GUIX/



BitVerse,开源的GUI编辑器
http://code.google.com/p/bitverse-unity-gui/
作者: Asen    时间: 2011-9-17 10:48

作者: C.R.CAN    时间: 2012-3-14 23:30
非常感谢,管理员设置了需要对新回复进行审核,您的帖子通过审核后将被显示出来,现在将转入主题

作者: 彬彬    时间: 2012-3-16 19:53

   

作者: 奇    时间: 2012-6-16 23:18
凡系斑竹滴话要听;凡系朋友滴帖要顶

作者: C.R.CAN    时间: 2012-8-12 00:28
先顶上去,偶要高亮加精鸟!

作者: C.R.CAN    时间: 2012-8-18 23:49
谢谢楼主,真是太实用了

作者: 菜刀吻电线    时间: 2012-8-22 23:53
发了那么多,我都不知道该用哪个给你回帖了,呵呵

作者: 晃晃    时间: 2012-8-25 23:57
好`我顶``顶顶

作者: tc    时间: 2012-12-1 23:24
读铁系缘分,顶铁系友情





欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5