1. 创建一个GameObject对象
菜单【GameObject】选择【Create Empty】,此时可在【Hierarchy】窗口看到生成的GameObject对象,并且【Inspector】窗口中也有该对象的相关属性,我们可将该名称更改为自己想定义的名称,也可不改,博主这里改为TestGameObject。
2. 创建一个按钮
菜单【GameObject】选择【UI】菜单,并选择【Button】生成一个按钮对象,同样可对该按钮重命名,这里命名为TestButton。
3. 将TestButton按钮和TestGameObject游戏对象绑定
3.1 在【Hierarchy】窗口选中TestGameObject对象,然后在【Inspector】窗口点击“Add Component”,滑动滚动条至底部,选择“New script”新建一个cs脚本。
博主命名为“TestBtn”,此时双击下图红色箭头位置则会打开VS加载该cs脚本文件,如下图
3.2 打开文件后添加如下代码,保存,缩小或关闭VS窗口都行。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TestBtn : MonoBehaviour
{
public Button my_button;
static int cnt = 0;
// Start is called before the first frame update
void Start()
{
Debug.Log("You Start!");
Button btn = my_button.GetComponent<Button>();
btn.onClick.AddListener(TestClick);
}
void TestClick()
{
cnt += 1;
Debug.Log("You have clicked the button! " + cnt.ToString());
}
// Update is called once per frame
void Update()
{
}
}
此时会发现【inspector】窗口中的Test Btn(Script) 一栏多了My_button一项内容,此时我们将【Hierarchy】窗口中原先创建的TestButton直接拖拽到“My_button”一栏右边的“None(Button)”框中,即可绑定完成,如下图
4. 运行测试效果
4.1 此时还可设置按钮显示的文本内容,博主设置为“TestIt”
4.2 在菜单【Windows】--》【General】--》【Console】打开控制台以便查看按钮点击后输出的内容 ,同时点击界面中上方的“播放”符号运行程序,此时可以看到控制台有输出,我这里有两个按钮,所以输出了两行内容,你的话只会输出红色框的一行。
此时点击“TestIt”按钮四次的话,可以在控制台看到输出四次“You have clicked the button”,并且附带序号,并且每次的时间不同,运行成功,Unity3D创建按钮,并且添加按钮点击消息响应事件到此结束。
5. 点击按钮加载场景
5.1 通过触发事件(如按钮点击),然后在事件响应函数中加入场景加载的名称即可,Unity老版(2018版之前)加载场景使用 Application.LoadLevel (SceneName);新版使用 SceneManager.LoadScene(SceneName),需要引用 UnityEngine.SceneManagement 包;修改上述部分的TestClick函数部分即可。
void TestClick()
{
SceneManager.LoadScene("Drive1");
}
5.2 需要将场景加载至【File】菜单中的“Build Settings”选项,如下图,打开“Build Settings”界面,直接将场景拖入【Scene In Build】窗口中即可,如下图。