- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
unity3d基础文档(gui入门,脚本概览,命令手册)
Unity3d-GUI入门
这一段将解释UnityGUI控制所需的脚本。
UnityGUI控制
UnityGUI控制是利用一类被称为OnGUI()的函数,只要在控制脚本激活的状态下,OnGUI()函数可以在每帧调用,就像Update( )函数一样。
GUI控制在结构上相当简单,这种结构在下面这个例子中十分明显:
/* Example level loader */
function OnGUI ()
{// Make a background box
GUI.Box (Rect (10,10,100,90), Loader Menu);
// Make the first button. If it is pressed, Application.Loadlevel (1) will be executed
if (GUI.Button (Rect (20,40,80,20), Level 1)) {
Application.LoadLevel (1);
}
// Make the second button.
if (GUI.Button (Rect (20,70,80,20), Level 2)) {
Application.LoadLevel (2);
}
}
这个例子是一个完整的,功能层的装载,如果你把这段脚本复制粘贴到GameObject上,在Play模式下你将会看到如下的菜单出现。
这个装载菜单是由例子中的代码创建的。
下面让我们看一下这个例子中代码的细节:
在GUI的第一行中,GUI.BOX (Rect(10,10,100,90),”Loader Menu”);通过头文本“Loader Menu”显示一个Box控制,它通过一个典型的GUI控制定义,这样我们可以在第一时间解释。
在GUI的下一行中是一个Button控制定义,要注意它与BOX控制之间细微的差别。确切的说,整个Button定义放置在一个if语句中。当游戏在运行中并且按钮按下,if语句返回一个true,并且if中的代码被执行。
当OnGUI()代码在每一帧被调用的时候,你不必明确的创建或去除GUI控制,定义控制的代码同时也创建了它。如果你需要在一个特定的时间显示控制,你可以利用任何一种描述逻辑来做。
/* Flashing button example */
function OnGUI () {
if (Time.time % 2 1) {
if (GUI.Button (Rect (10,10,200,20), Meet the flashing button)) {
print (You clicked me!);
}
}
}
这里,GUI.Button()只有在其它时间上才会被调用,所以按钮会出现或消失,自然地,用户只有在在按钮可见的情况下才能按下它。
就像你所看见的,当GUI控制显示和工作时,你可以利用任何希望的逻辑去控制。现在,我们来详细的研究每个控制定义。
Anatomy of a Control (控制的解剖)
当GUI控制定义时,这里有三种关键信息:
Type(Position,Content)
很明显这种结构是一个函数有两个内容来描述,下面我们解释这种结构的细节。
Type
Type是一种控制类型,通过调用Unity的GUI class或者是GUILayout Class函数来定义,只有在布局模式中讨论长度才会用到。例如,GUI.Label()将会创建一个非交互的标签。所有不同的控制类型会在后面解释,在导读的控制部分。
Position
Position是第一个需要描述的GUI函数,它通过提供Rect()函数来描述自己,Rect()定义四种工具,最左端位置,最上端位置,总宽度和总高度。所有的值只能是整数,相当于像素值。所有的UnityGUI控制工作在屏幕空间,发布的播放窗口的像素分辨率。
坐标系以左上为基础,Rect(10,20,300,100)定义一个矩形:10,20的位置开始,310,120的位置结束。Rect函数后面两个整数是定义的总宽和总高,而不是绝对位置上的宽和高,这就是为什么例子上提到的是310,120而不是300,100.
你可以利用屏幕宽度和屏幕高度工具得到总的屏幕播放器尺寸,下面这个例子将帮助我们清楚它是怎么工作的:
/* Screen.width Screen.height example */
function OnGUI () {
GUI.Box (Rect (0,0,100,50), Top-left);
GUI.Box (Rect (Screen.width - 100,0,100,50), T
您可能关注的文档
最近下载
- 交通运输行政执法人员考试题及答案 .pdf VIP
- 卸料平台专项施工措施(修).doc VIP
- 广播电视技术能手竞赛部分试题.pdf VIP
- 医疗机构从业人员行为规范.pptx VIP
- 第6单元 美丽乡村—我学会了吗 (课件)2025-2026学年度青岛版数学三年级上册.pptx VIP
- 22G101-1图集—混凝土结构施工图平面整体表示方法制图规则和构造详图(现浇混凝土框架、剪力墙、梁、板).pdf VIP
- 《古希腊哲学思想及其影响:大学西方文化教案》.doc VIP
- 山东-造价文件汇编.pdf VIP
- 牧场物语矿石镇的伙伴们攻略 [2].doc VIP
- 主题活动——1200张纸有多厚(课件)2025-2026学年度青岛版(六三)数学三年级上册.pptx VIP
文档评论(0)