You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity游戏运行时点击按钮如何实现加载下一个场景

现有代码问题说明

你写的核心加载逻辑本身是正确的,但存在3个需要注意的问题:

  • 缺少必要命名空间引用:代码中使用的SceneManager属于UnityEngine.SceneManagement命名空间,如果你脚本顶部没有加using UnityEngine.SceneManagement;,运行时会报类型找不到的错误
  • 方法末尾冗余分号:方法闭合大括号后的;属于冗余内容,虽然C#语法允许不会报错,但不符合规范建议删除
  • 无边界校验逻辑:如果你当前已经是Build列表里的最后一个场景,buildIndex + 1会超出场景索引范围,触发数组越界报错

完整功能实现步骤

  1. 给脚本补充命名空间引用,并且修正PlayGame方法的逻辑,增加边界校验,参考代码如下:
using UnityEngine;
using UnityEngine.SceneManagement;

// 注意类名要和你的脚本文件名完全一致
public class SceneLoader : MonoBehaviour
{
    public void PlayGame()
    {
        int nextSceneIndex = SceneManager.GetActiveScene().buildIndex + 1;
        // 校验下一个场景索引是否在有效范围内
        if (nextSceneIndex < SceneManager.sceneCountInBuildSettings)
        {
            SceneManager.LoadScene(nextSceneIndex);
        }
        // 超出范围时你也可以在这里补充自定义逻辑,比如回到首页、弹出完成提示等
    }
}
  1. 将写好的脚本挂载到场景中始终处于激活状态的GameObject上,你可以专门新建一个名为GameManager的空对象来挂载该脚本
  2. 打开Unity顶部菜单的File > Build Settings,将项目中所有需要用到的场景,按跳转顺序拖入「Scenes In Build」列表中,列表从上到下的顺序就是场景buildIndex的排序,第一个场景的索引为0
  3. 找到你需要绑定点击事件的UI Button组件,在Inspector面板的On Click ()模块点击加号,把刚才挂载了脚本的GameManager对象拖到事件的对象选择框中,然后下拉函数列表,找到对应脚本下的PlayGame方法选中即可
  • 常见注意点:需要确保Button组件的Raycast Target选项处于勾选状态,且挂载脚本的对象在点击按钮时没有被禁用,否则点击不会触发事件

内容的提问来源于stack exchange,提问作者Davian Vivian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:24:03