美文网首页
Eevee框架9——Resources文件夹加载

Eevee框架9——Resources文件夹加载

作者: ShawnWeasley | 来源:发表于2020-08-20 08:28 被阅读0次

    到这里为止我们都是仿照唐老师的教程造轮子,略作优化,这里唐老师加载资源暂时用的是Resources.Load。我打算使用最新的Addressable,因此Addressable加载部分暂时往后放一放,我们最后再处理Addressable加载问题。

    这里先继续引用一下唐老师的Resources文件夹资源加载工具:

    using System;
    using System.Collections;
    using UnityEngine;
    using Object = UnityEngine.Object;
    
    /// <summary>
    /// Resources文件夹资源加载工具
    /// </summary>
    public class ResourceUtil : Singleton<ResourceUtil>
    {
        /// <summary>
        /// 同步加载资源
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="name">资源名</param>
        /// <returns></returns>
        public T Load<T>(string name) where T : Object
        {
            T obj = Resources.Load<T>(name);
            if (obj is GameObject)
                return GameObject.Instantiate(obj);
            else
                return obj;
        }
    
        /// <summary>
        /// 异步加载资源
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="name">资源名</param>
        /// <param name="action">回调</param>
        public void LoadAsyn<T>(string name, Action<T> action) where T : Object
        {
            //使用MonoManager调用协程(因为ResourceMgr没有继承MonoBehavior)
            MonoUtil.Instance.StartCoroutine(LoadAsynIE<T>(name, action));
        }
    
        /// <summary>
        /// 协程异步加载资源
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="name">资源名</param>
        /// <param name="action">回调</param>
        /// <returns></returns>
        private IEnumerator LoadAsynIE<T>(string name, Action<T> action) where T : Object
        {
            ResourceRequest r = Resources.LoadAsync<T>(name);
            yield return r;
            if (r.asset is GameObject)
                action(GameObject.Instantiate(r.asset) as T);
            else
                action(r.asset as T);
        }
    }
    

    暂停一下

    到目前为止,大部分的代码都是仿照唐老师的框架写的代码,但本人的目标其实是期望写出凉鞋的QF那种框架代码。唐老师的框架其实过于简单化,并且更多适用于小型项目或者小型游戏。因此后续的音频管理等等暂时不借鉴了。

    现在框架的思路暂时转变一下,下面是后续的计划:
    1.学习UniRx作为主要的逻辑支撑
    2.找到一个简单易用的UI框架,如果实在没有则仿制凉鞋QF
    3.编写Addressable架构处理

    因此本系列先暂停一下,咱们去学一下UniRx~重新开一个系列咯

    相关文章

      网友评论

          本文标题:Eevee框架9——Resources文件夹加载

          本文链接:https://www.haomeiwen.com/subject/unudjktx.html