博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
枚举类型与字符串ConvertEnumToString
阅读量:5167 次
发布时间:2019-06-13

本文共 2297 字,大约阅读时间需要 7 分钟。

枚举类型与字符串添加字典互转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可根据场景,修改添加方便使用...

转载于:https://www.cnblogs.com/XiaoLang0/p/9675222.html

你可能感兴趣的文章
在Android中自定义捕获Application全局异常,可以替换掉系统的强制退出对话框(很有参考价值与实用价值)...
查看>>
C语言第三次博客作业---单层循环结构
查看>>
DevExpress 程序运行后 layoutView 卡片大小发生变化
查看>>
WPF DevExpress 中GridControl如何设置选中单元格的Style
查看>>
查看python库文档
查看>>
Python网络编程_抓取百度首页代码(注释详细)
查看>>
js动态插入标签代码(insertAdjacentHTML)
查看>>
1.开发准备
查看>>
POJ 1463 树型DP
查看>>
关于SubSonic3.0插件使用SubSonic.Query.Select查询时,字段类型为tinyint时列丢失问题的Bug修复...
查看>>
自动生成小学生四则运算(皮!)
查看>>
rsync 同步
查看>>
centos su命令
查看>>
CLR:基元类型、引用类型和值类型
查看>>
Mongo的备份和恢复(mongodump 和mongorestore )
查看>>
第六章(jQuery 与 Ajax 的应用)(6.6 序列化元素 6.7 jQuery 中的 Ajax 事件)
查看>>
dubbo序列化hibernate.LazyInitializationException could not initialize proxy - no Session懒加载异常的解决...
查看>>
为DataGrid 写一个 DropDownListColumn
查看>>
支付宝移动支付之IOSApp调用支付宝钱包
查看>>
学会分享和交流
查看>>