1
0
mirror of https://github.com/soarqin/DSP_Mods_TO.git synced 2025-12-12 01:23:31 +08:00
Files
DSP_Mods_TO/XianTu/AssetsLoader/ABEmbeddedAssetsLoad.cs
2024-05-03 00:28:53 +08:00

51 lines
1.4 KiB
C#

using System.Diagnostics;
using System.Reflection;
using UnityEngine;
using Debug = UnityEngine.Debug;
namespace AssetsLoader
{
internal class ABEmbeddedAssetsLoad : ABLoad
{
public ABEmbeddedAssetsLoad(string filename, string assetsNamespace = null)
{
var stackTrace = new StackTrace();
var frame = stackTrace.GetFrame(1);
var assembly = frame.GetMethod().DeclaringType.Assembly;
var flag = assetsNamespace == null;
if (flag)
{
assetsNamespace = assembly.FullName.Split([','])[0];
}
LoadAssetsFromEmbedded(filename, assetsNamespace, assembly);
}
private void LoadAssetsFromEmbedded(string filename, string assetsNamespace, Assembly assembly)
{
var text = assetsNamespace + "." + filename;
var manifestResourceStream = assembly.GetManifestResourceStream(text);
var flag = manifestResourceStream == null;
if (flag)
{
Debug.Log(string.Concat(["在", assembly.FullName, "找不到内嵌的资源", text, ",请检查内嵌资源中是否有它:"]));
foreach (var text2 in assembly.GetManifestResourceNames())
{
Debug.Log(text2);
}
Debug.Log("------------------------");
}
else
{
Ab = AssetBundle.LoadFromStream(manifestResourceStream);
Init();
}
}
public ABEmbeddedAssetsLoad(string filename, string dllFilepath, string dllNamespace)
{
var assembly = Assembly.LoadFrom(dllFilepath);
LoadAssetsFromEmbedded(filename, dllNamespace, assembly);
}
}
}