yyl
7 小时以前 5bc2cc9a3e007b96a0de96e70e87f25bc5a254a2
Main/ResModule/ResManager.cs
@@ -1,13 +1,11 @@
using UnityEngine;
using System.Collections;
using UnityEngine;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using System;
using UnityEngine.U2D;
using LitJson;
using System.IO;
using UnityEngine.Networking;
using UnityEngine.Video;
using Spine.Unity;
#if UNITY_EDITOR
@@ -75,6 +73,7 @@
        {typeof(Material), "mat"},
        {typeof(VideoClip), "mp4"},
        {typeof(SpriteAtlas), "spriteatlasv2"},
        {typeof(SkeletonDataAsset), "asset"},
    };
@@ -126,7 +125,6 @@
    public T LoadAsset<T> (string directory, string name) where T : UnityEngine.Object
    {
        T asset = null;
        //  特殊处理 因为有一层图集的关系 directory要传入的应该是atlas的名字
        if (typeof(T) == typeof(Sprite))
        {
@@ -140,9 +138,8 @@
    {
        T asset = null;
        var path = string.Concat($"Assets/ResourcesOut/{directory}/{name}", GetExtension(typeof(T))).Replace("//", "/");
        if (AssetSource.uiFromEditor)
        var path = ($"Assets/ResourcesOut/{directory}/{name}" + GetExtension(typeof(T))).Replace("//", "/").Trim().Replace("\\", "/");
        if (!AssetSource.isUseAssetBundle)
        {
#if UNITY_EDITOR
            asset = UnityEditor.AssetDatabase.LoadAssetAtPath<T>(path);
@@ -156,20 +153,36 @@
        if (asset == null)
        {
            Debug.LogErrorFormat("LoadAsset() => 加载不到资源: {0}.", name);
            Debug.LogErrorFormat("LoadAsset() => 加载不到资源: {0}", path);
        }
        return asset;
    }
    public string[] LoadConfig(string name)
    {
        string path = string.Empty;
        if (!AssetSource.isUseAssetBundle)
        {
#if UNITY_EDITOR
            path = ResourcesPath.CONFIG_FODLER + "/" + name + ".txt";
#endif
        }
        else
        {
            path = AssetVersionUtility.GetAssetFilePath($"Config/{name}.txt");
        }
        return File.ReadAllLines(path);
    }
    private Sprite LoadSprite(string atlasName, string spriteName)
    {
#if !UNITY_EDITOR
        SpriteAtlas atlas = LoadAsset<SpriteAtlas>("Sprite", atlasName);
        SpriteAtlas atlas = LoadAsset<SpriteAtlas>("Sprite", atlasName.Replace("Sprite/", ""));
        return atlas.GetSprite(spriteName);
#else
        //  编辑器下可以直接加载没啥问题
        return LoadAssetInternal<Sprite>("Sprite/" + atlasName, spriteName);
        return ResManager.Instance.LoadAssetInternal<Sprite>(atlasName, spriteName);
#endif
    }
@@ -188,7 +201,7 @@
    private void LoadSpriteAsync<T>(string atlasName, string spriteName, Action<bool, UnityEngine.Object> callBack) where T : UnityEngine.Object
    {
#if !UNITY_EDITOR
        LoadAssetAsync<SpriteAtlas>("Sprite", atlasName, (isLoaded, atlas) => {
        LoadAssetAsync<SpriteAtlas>(atlasName, spriteName, (isLoaded, atlas) => {
            if (isLoaded)
            {
                callBack?.Invoke(isLoaded, atlas.GetSprite(spriteName));
@@ -200,7 +213,7 @@
        });
#else
        //  编辑器下可以直接加载没啥问题
        LoadAssetAsyncInternal<T>("Sprite/" + atlasName, spriteName, callBack);
        LoadAssetAsyncInternal<T>(atlasName, spriteName, callBack);
#endif
    }
@@ -208,7 +221,7 @@
    {
        var path = string.Concat($"Assets/ResourcesOut/{directory}/{name}", GetExtension(typeof(T))).Replace("//", "/");
        if (AssetSource.uiFromEditor)
        if (!AssetSource.isUseAssetBundle)
        {
#if UNITY_EDITOR
            var asset = UnityEditor.AssetDatabase.LoadAssetAtPath<T>(path);
@@ -224,7 +237,7 @@
    public void UnloadAsset(string assetBundleName, string assetName)
    {
        if (AssetSource.uiFromEditor)
        if (!AssetSource.isUseAssetBundle)
            return;
        AssetBundleUtility.Instance.UnloadAsset(assetBundleName, assetName);
@@ -232,7 +245,7 @@
    public void UnloadAssetBundle(string assetBundleName, bool unloadAllLoadedObjects, bool includeDependenice)
    {
        if (AssetSource.uiFromEditor)
        if (!AssetSource.isUseAssetBundle)
            return;
        AssetBundleUtility.Instance.UnloadAssetBundle(assetBundleName, unloadAllLoadedObjects, includeDependenice);
    }