Unity(13)-场景切换,保留资源

Posted 小狐狸FM

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity(13)-场景切换,保留资源相关的知识,希望对你有一定的参考价值。

前言

在切换场景的时候会删除上一个场景的所有资源,所以需要给需要的游戏对象上挂载脚本,从而保留游戏对象。

在这里插入图片描述

其他介绍

微软官方C#函数文档

Unity官方API文档(英文)

Unity官方API文档(中文)

Unity官方用户手册(中文)

Unity游戏蛮牛API文档(中文)

Unity教程-C语言中文网

Unity用户手册-unity圣典

Unity组件手册-unity圣典

Unity脚本手册-unity圣典

上一篇笔记

Unity(12)-场景切换

一、项目结构

场景1

在这里插入图片描述

场景2

在这里插入图片描述

项目

在这里插入图片描述

二、脚本

[1]. 场景切换

添加场景到设置中

在这里插入图片描述

场景切换的脚本如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class Change : MonoBehaviour
{
    /// <summary>
    /// 切换到场景2
    /// </summary>
    public void scene2()
    {
        SceneManager.LoadScene("Menu2");
    }
}

然后在按钮上绑定场景切换的脚本

在这里插入图片描述

在这里插入图片描述

[2]. 资源保留

创建了一个空的资源Player作为需要保留的资源

在这里插入图片描述

Start中使用函数DontDestroyOnLoad(),传入当前挂载对象

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Keep : MonoBehaviour
{
    private void Start()
    {
        DontDestroyOnLoad(gameObject);//在加载新场景时不销毁脚本挂载的对象
        //方式二 DontDestroyOnLoad(this.gameObject);
    }
}

把脚本挂载到需要保留的资源上

在这里插入图片描述

最终效果如下,被脚本挂载的Player对象被放置到了DontDestroyOnLoad
在场景2中也会存在DontDestroyOnLoad
如果DontDestroyOnLoad没有被删除,那么再切换到其他的场景时里面的资源仍然可以存在。

在这里插入图片描述

以上是关于Unity(13)-场景切换,保留资源的主要内容,如果未能解决你的问题,请参考以下文章

Unity场景切换保留数据的解决方案

Unity3D 灵巧小知识点 ☀️ | 切换场景后保留上个场景中的游戏物体不被销毁

unity3D中的场景切换怎么实现啊

解决切换场景时NGUI图集资源未释放的问题

在unity3d里怎么做进度条

Reload Activity 以在 Fragment 之间重新切换