unity3d 如何进行场景切换?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d 如何进行场景切换?相关的知识,希望对你有一定的参考价值。
参考技术A 1、在Build Settings(Ctrl+Shift+B)窗口点击[Add Current]添加当前场景,添加所用到的场景.2、代码调用Application.LoadLevel("场景名称"),场景名称不包含.unity扩展名.本回答被提问者采纳
unity——通过点击按钮进行场景切换
前记
通过点击鼠标进行场景切换请参考:
操作
1.准备两个示例场景
2.点击File—>Build Settings...,将场景添加到视图中,点击Build。选择文件夹进行保存。(建议将文件打包到空的文件夹)
3.为场景添加Button(UI)
在Hierarchy视图中空白处右键,选择UI—>Button - TextMeshPro。
添加完成后修改合适的位置。
4. 编写代码。
新建一个C# Script文件,编写代码如下:
可编写不同语句选择是否在切换场景后销毁前场景。
(1)切换场景后销毁前场景
SceneManager.LoadScene(场景的索引);
或者 SceneManager.LoadScene("场景的名字"); //英文双引号
(3)切换场景后不销毁前场景
SceneManager.LoadScene(场景的索引, LoadSceneMode.Additive);
或者SceneManager.LoadScene("场景的名字", LoadSceneMode.Additive);//英文双引号
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//调用UnityEngine中的UI函数
using UnityEngine.UI;
//调用SceneManagement函数
using UnityEngine.SceneManagement;
public class LoadScene : MonoBehaviour
//进行场景切换的函数
public void Scene1()
SceneManager.LoadScene(0);//切换场景后销毁前场景
//SceneManager.LoadScene(0, LoadSceneMode.Additive);//切换场景后不销毁前场景
public void Scene2()
SceneManager.LoadScene(1);//切换场景后销毁前场景
//SceneManager.LoadScene(1, LoadSceneMode.Additive);//切换场景后不销毁前场景
//退出的函数
public void myExit()
Application.Quit();
5. 创建空物体,放在Canvas下用来挂载脚本。(其实这个空物体位置在那都行,可自由放置,将脚本加载到空物体上)
6.选中Button,在Inspector中点击On Click()的"+",根据下图将空物体拖拽。
点击No Function选择脚本中的方法,由于场景1需要切换到场景2,所以选择的是Scene2()方法。
效果
点击运行,查看效果。
(1)切换场景后销毁前场景
SceneManager.LoadScene(这里填场景的索引);
(2)切换场景后不销毁前场景
SceneManager.LoadScene(这里填场景的索引, LoadSceneMode.Additive);
备注
创建另一个场景的按钮,然后绑定脚本的Scene1()方法,就可以实现来回切换啦。
错误1:
UnityException: Build path contains project built with "Create Visual Studio Solution" option, which is incompatible with current build settings. Consider building your project into an empty directory.
原因:你当前的目录包含Visual Studio文件目录
解决办法:新建个文件夹专门用来打包这个程序就行
以上是关于unity3d 如何进行场景切换?的主要内容,如果未能解决你的问题,请参考以下文章
Unity3D OpenVR SteamVR 点击菜单切换场景