美文网首页
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文件夹加载

    到这里为止我们都是仿照唐老师的教程造轮子,略作优化,这里唐老师加载资源暂时用的是Resources.Load。我打...

  • Unity-资源加载(Resources,AssetBundle

    Resources类 使用Resources加载资源,资源一定要放到Resources文件夹下,支持名字和路径加载...

  • Unity游戏开发总结

    四种加载资源的方式 拖到组件上 Resources.load 必须建立Resources文件夹 AssetBund...

  • Unity 加载资源

    在Resources文件夹里面放入资源。加载如: 扩展方法-扩展系统组件ref 、out、params参数区别 r...

  • xLua学习笔记(三) Lua调用C#代码

    将下列代码挂载到任何一个GameObject上,这样就能在Unity中加载并执行Resources/Lua文件夹下...

  • Eevee框架10——UI框架

    想要一个完美的UI框架,貌似太理想了,这里参考了唐老师、siki等能百度到的很多UI框架,发现大家都只是做了界面的...

  • 从Resources文件夹加载精灵图片

    背包为一张Image,加上网格布局组件,一共24个格子 Resources下的Item中有23张精灵 需要把23张...

  • Eevee框架1——序

    一个多月来学了很多东西,想综合起来做一个自己的框架,那就从今天开始,构建一个自己用着趁手的框架吧。 其实凉鞋的QF...

  • Unity编译器拓展

    1.Resources 资源会被压缩,使用Resources.Load加载,是同步加载的,不管在哪都可以被找到,有...

  • Unity 游戏启动速度优化

    1.使用Resources文件夹使得内存管理更加困难。 2.随着Resources文件夹的增多,管理里面的Asse...

网友评论

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

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