mirror of
https://github.com/soarqin/DSP_Mods_TO.git
synced 2025-12-12 01:23:31 +08:00
51 lines
1.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|