unity3D游戏开发十三之GUI

本文详细介绍了Unity3D内置的GUI系统,包括Label、Box、Button、TextField、PasswordField、TextArea、Toggle、ToolBar、Slider和Scrollbar等控件的使用方法。Unity的GUI控件需要通过编写代码实现,虽然缺乏内置的可视化编辑器,但可以通过编写脚本或使用第三方插件如NGUI来创建复杂的GUI界面。此外,文章还提到了如何通过配置GUISkin自定义控件样式,以适应不同游戏风格的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GUI在游戏的开发中占有重要的地位,游戏的GUI是否友好,使用是否方便,很大程度上决定了玩家的游戏体验。Unity内置了一套完整地GUI系统,提供了从布局、控件到皮肤的一整套GUI解决方案,可以做出各种风格和样式的GUI界面。在Unity中使用GUI来完成GUI的绘制工作,目前Unity没有提供内置的GUI可视化编辑器,因此GUI界面的制作需要全部通过编写脚本代码来实现,如果游戏有比较多的界面制作需求,可以通过编写编辑器脚本来制作适合自身需求的GUI编辑器,或者借助第三方的GUI插件,如NGUI。

Unity的GUI类提供了丰富的界面控件,可以将这些控件配合使用,GUI控件,如下图:


GUI代码需要在OnGUI函数中调用才能绘制,GUI的控件一般都需要传人Rect参数来指定屏幕绘制区域,例如Rect(0,10,200,300),对应的屏幕矩形区域左上角的坐标为(0,10),宽度为200,高度为300,在Unity GUI中,屏幕坐标系以左上角为原点

接下来我们看Label控件,Label控件适合用来显示文本信息或者图片,我们新建一个c#脚本,叫做TestGUI.cs,然后绑定到我们的Main Camera对象上,Label初始化代码如下:

void OnGUI()
	{
		//GUI.color = Color.red;

		GUI.Label(new Rect (10, 10, 100, 200), "Hello World!");

		GUI.Label (new Rect (100, 100, texture.width/4, texture.height/4), texture);

	}

我们定于了两个label,一个显示文字,另一个显示了一张图片,如下图:


Box控件,Box控件用来绘制带有边框背景的文字或图片,代码如下:

void OnGUI()
	{
		//GUI.color = Color.red;

		//GUI.Label(new Rect (10, 10, 100, 200), "Hello World!");

		//GUI.Label (new Rect (100, 100, texture.width/4, texture.height/4), texture);

		GUI.Box (new Rect (10, 10, Screen.width * 0.5f, Screen.height * 0.5f), "This is a title");

		GUI.Box (new Rect (150, 170, texture.width/4, texture.height/4), texture);


	}

效果如下:

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值