在切换场景时,经常会携带一些数据进入新场景,同时现有的场景会被销毁;为了防止进入新场景时出现遗漏或写错传递参数,和降低两个场景参数传递的耦合,自己写了一套简单的切换方案:
原理很简单,切换前将字典参数写入SceneMgr,切换后在脚本中读取即可
该方案包含2种脚本, SceneManager 与 SceneXxxInit 脚本:
-SceneMgr设为单例,用于写入参数以及切换各种场景
-SceneXxxInit为场景初始化脚本,挂在在每个不同的场景中,进入新场景后先读取SceneMgr的参数,然后在Awake中初始化场景
超级简单的使用过程:
1 调用ToNewScene("场景名",字典参数)
方法,把需要写入的参数存入SceneMgr类
中,然后加载新场景
2 进入新场景后,SceneXxxInit类
读取并清空SceneMgr类
里的参数,然后根据该参数设置新场景内容,完成初始化
具体步骤:
1、建立SceneMgr类
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
//场景管理类
public class SceneMgr : MonoBehaviour {
//单例
public static SceneMgr ins;
private void Awake() {
if (ins == null) {
ins = this; DontDestroyOnL