
- Unity教程
- 统一 - 主页
- Unity - 简介
- Unity - 安装和设置
- Unity - 创建精灵
- Unity - 修改精灵
- 变换和对象父子关系
- Unity - 内部资产
- Unity - 保存和加载场景
- Unity - 基本运动脚本
- Unity - 理解碰撞
- Unity - 刚体和物理
- Unity - 自定义碰撞边界
- 了解预制件和实例化
- Unity - 游戏对象销毁
- Unity - 协程
- Unity - 控制台
- Unity - 音频简介
- Unity - 从 UI 开始
- Unity - 按钮
- Unity - 文本元素
- Unity - 滑块
- Unity - 材质和着色器
- Unity - 粒子系统
- Unity - 使用资源商店
- Unity 有用资源
- Unity - 快速指南
- Unity - 有用的资源
- 团结-讨论
Unity - 按钮
在本章中,我们将学习如何将 UI 元素插入场景中并开始使用它们。
让我们从一个Button开始。要插入按钮,请在场景层次结构中右键单击,然后转到Create → UI → Button。如果您没有现有的 Canvas 和 EventSystem,Unity 会自动为您创建一个,并将按钮也放置在 Canvas 内。

请记住,在默认模式Overlay渲染模式下,Canvas 的大小与相机的大小无关。您可以通过单击“游戏”选项卡来测试这一点。

如果您播放该场景,您会注意到该按钮已经具有一些标准功能,例如检测鼠标何时悬停在其上以及按下时改变颜色。
按钮需要功能在 UI 中真正有用。可以通过其属性添加此功能。
让我们创建一个新脚本,并将其命名为ButtonBehaviour。
public class ButtonBehaviour : MonoBehaviour { int n; public void OnButtonPress(){ n++; Debug.Log("Button clicked " + n + " times."); } }
我们制作了一个简单的方法来记录我们点击按钮的次数。
注意- 此方法必须是公共的;否则按钮的功能不会注意到它。
让我们创建一个空的 GameObject 并将此脚本附加到它。我们这样做是因为按钮本身不会执行任何操作;它只调用其脚本中指定的方法。

现在,进入按钮的属性,找到OnClick()属性。
_property.jpg)
点击底部选项卡上的 + 图标,列表中应显示一个新条目。

此条目定义按下按钮所作用的对象,以及调用该对象脚本的哪个函数。由于按下按钮时使用了事件系统,您只需将多个功能添加到列表中即可触发它们。
将包含我们创建的ButtonManager脚本的空 GameObject 拖放到None(对象)插槽中。
_slot.jpg)
导航“No Function”下拉列表,然后查找我们的OnButtonPress方法。(请记住,它可以命名为您想要的任何名称,OnButtonPress 只是一个标准化的命名约定。)您应该在 ButtonBehaviour部分中找到它。
如果你现在玩游戏,你可以测试按钮,当然,控制台会打印出你按下按钮的次数。