前面的所有文章我们都在一个固定的游戏场景内进行开发,在最开始介绍场景这个概念的时候就已经提及,这个场景可以是一张地图,或者是一个对战房间等等,所以显然这个场景可以有多个,并且可以从一个场景切换到另外一个场景,那么在Unity中如何进行场景切换,以及如何处理好场景切换时的各个逻辑呢,本章就会详细讲解。
新建第二个场景
还记得最早讲的如何创建场景资源吗?
在Project窗口里面随便哪个你喜欢的位置右键Create->Scene就可以创建一个新的场景资源,我们已经有了一个Demo场景,那么我们创建一个新的场景叫AnotherDemo
OK,接下来我们需要编辑这个场景的内容,那就是双击这个场景资源文件,注意如果当前打开的场景比如你现在打开的是Demo,然后你有一些修改没有保存(比如Demo的Hierarchy窗口里面根节点是带星号的),那么Unity会提示你要不要保存,你自己决定要不要保存,然后才会打开刚刚双击的场景文件。
双击过后,我们就进入到了这个场景里面,一切都回到了原点:
唯独不同的是,Hierarchy窗口的根节点换成了我们新创建的名字AnotherDemo。
ok,这样就理解了如何创建新的场景,并进去编辑内容,我们先换回到Demo场景中,因为我们接下来需要从Demo场景通过代码逻辑切换到AnotherDemo。
场景切换
既然我们要切换场景,肯定是要有什么逻辑触发,我们可以单独写个组件加到空的GameObject上,组件就在Start触发后3秒进行场景切换,而场景切换的API则是:
https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadScene.html
我们让gpt帮我们写个:文章来源:https://www.toymoban.com/news/detail-443907.html
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneSwitcher : MonoBehaviour
{
public string sceneName;
public float delay = 3f;
private float startTime = 0f;
private bool isSwitching = false;
private void Start()
{
startTime = Time.time;
}
private void Update()
{
if (!isSwitching)
{
float elapsedTime = Time.time - startTime;
if (elapsedTime >= delay)
{
SceneManager.LoadScene(sceneName);
isSwitching = true;
}
}
}
}
写的还不错,delay表示物体开始跑起来后等待多少秒执行场景切换,sceneName则是我们的场景资源文件的名字&#x文章来源地址https://www.toymoban.com/news/detail-443907.html
到了这里,关于1.17 从0开始学习Unity游戏开发--场景切换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!