枚舉類型與字符串ConvertEnumToString


枚舉類型與字符串添加字典互轉ConvertEnumToString

using UnityEngine;

using System.Collections;

using UnityEngine.UI;

using Enums;

public class startScene : MonoBehaviour

{

         //點擊事件

    public void startOnClick()

    {

        global_Mgr.EnterNextScenes(Scenes.MainMenuScene)       

    } 

}

 

using UnityEngine;

using System.Collections;

using UnityEngine.UI;

using UnityEngine.SceneManagement;

using Enums;

public class global_Mgr

{

         //定義全局靜態變量

        public static Scene NextScenesEnum = Scene.LoadScene;

         //定義全局靜態加載

        public static void EnterNextScenes(Scenes scenesEnumName)

        {

           NextScenesEnum = scenesEnumName;

           SceneManager.LoadScene(Config.ConvertEnumToStr(Scenes.LoadScene));

        }

}

 

 

using UnityEngine;

using System.Collections;

using System.Collections.Generic;

namespace Enums

{        //枚舉場景類型命名

    public enum Scenes

    {

        StartScene,

        SubmenuScene,

        LoadScene,

        MainMenuScene

    }

         //定義字典枚舉轉字符串類

    public class Config

    {

                  //定義字典

        public static Dictionary<Scenes, string> dictionary;

                  //方法類型轉換、參數枚舉場景名、返回值場景名稱字符串

        public static string ConvertEnumToStr(Scenes Scenes)

        {

            dictionary = new Dictionary<Scenes, string>();

            dictionary.Add(Scenes.StartScene, "StartScene");

            dictionary.Add(Scenes.SubmenuScene, "SubmenuScene");

            dictionary.Add(Scenes.LoadScene, "LoadScene");

            dictionary.Add(Scenes.MainMenuScene, "MainMenuScene");

            if (!dictionary.ContainsKey(Scenes))

            {

                Debug.Log("error");

                return null;

            }

            return dictionary[Scenes];

        }

    }

}

 

 

using UnityEngine;

using System.Collections;

using UnityEngine.SceneManagement;

using UnityEngine.UI;

using Enums;

//場景讀條加載(詳細備注前篇:LoadScene場景異步加載(2018-09-06 13:30))

public class Load : MonoBehaviour

{

    public Slider Slider;

    private AsyncOperation async;

    private int number = 0;

    private int num = 0;

    private void Start()

    {

        Slider.value = 0;

        StartCoroutine("start");

    }

    void Update()

    {

        Slider.value = number / 100f;

    }

    private IEnumerator start()

    {

        async = SceneManager.LoadSceneAsync(Config.ConvertEnumToStr(global_Mgr.NextScenesEnum));

        async.allowSceneActivation = false;

        while (async.progress < 0.9f)

        {

            num = (int)async.progress * 100;

            while (number < num)

            {

                ++number;

                yield return new WaitForSeconds(0);

            }

        }

        num = 100;

        while (number < num)

        {

            ++number;

            yield return new WaitForSeconds(0);

        }

        async.allowSceneActivation = true;

    }

}

注:在場景或關卡多時,運用較為方便,可一個加載場景在每個關卡使用,字典方法ConvertEnumToStr可根據場景,修改添加方便使用...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM