Unity 场景跳转,多场景管理

提高 脚本的复用率

首先,创建一个管理 场景的脚本 

MapScenesManager.cs

  • 声明 enum :

放在 Class 的外面,方便外部引用,也就是被其他的 脚本 引用

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
/// <summary>
/// 地图场景
/// </summary>
public enum MapScene
{
    GrassScene,      //草地
    SnowfieldScene,  //雪域
    GobiScene,       //戈壁
    DesertScene,     //沙漠
    ForestScene      //森林
}
  • 静态实例变量

  1.  静态属性 Instance
  • 这个属性用于获取 MapScenesManager 类的唯一实例。
  • 当第一次访问 Instance 属性时,如果 instance 为空(即还没有创建实例),就会创建一个新的 MapScenesManager 实例并赋值给 instance
  • 之后每次访问 Instance 属性时,都会返回已经创建的唯一实例。
public class MapScenesManager 
{
   //静态实例变量
    private static MapScenesManager instance;
    // 用的是C#自己的单例   之前写在Init()的是因为继承MonoBehaviour
    public static MapScenesManager Instance
    {
        get {
            if (instance==null)
            {
                instance = new MapScenesManager();
            }
            return instance;
        }
    }
  •  场景跳转

    //选择要跳转的地图场景
    public void MapSelectFromScene(MapScene maps)
    {
        SceneManager.LoadScene(maps.ToString());
    }

 最后,创建一个点击事件的脚本

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

public class SceneSwicth : MonoBehaviour
{
    [SerializeField]
    private MapScene mapScene;
    private Button onclick;
    void Start()
    {
        onclick = GetComponent<Button>();
        onclick.onClick.AddListener(()=> {
            MapScenesManager.Instance.MapSelectFromScene(mapScene);
           
        });
    }
}

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值