提高 脚本的复用率
首先,创建一个管理 场景的脚本
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 //森林
}
-
静态实例变量:
- 静态属性
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);
});
}
}