11
This commit is contained in:
@@ -3,8 +3,12 @@ using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BITKit;
|
||||
using BITKit.IO;
|
||||
using BITKit.Mod;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using YooAsset;
|
||||
|
||||
namespace BITFALL.HotFix
|
||||
{
|
||||
@@ -12,27 +16,24 @@ namespace BITFALL.HotFix
|
||||
{
|
||||
private void OnEnable()
|
||||
{
|
||||
SceneManager.sceneLoaded += Execute;
|
||||
YooAssetUtils.OnPackageRegistered += Execute;
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
SceneManager.sceneLoaded -= Execute;
|
||||
YooAssetUtils.OnPackageRegistered -= Execute;
|
||||
}
|
||||
[BIT]
|
||||
public void Execute()
|
||||
|
||||
private async void Execute(string obj)
|
||||
{
|
||||
Execute(SceneManager.GetActiveScene(), LoadSceneMode.Single);
|
||||
}
|
||||
private void Execute(Scene arg0, LoadSceneMode arg1)
|
||||
{
|
||||
foreach (var x in SceneManager.GetSceneByName(arg0.name).GetRootGameObjects().SelectMany(o=>o.GetComponentsInChildren<Renderer>()) )
|
||||
var package = YooAssets.GetPackage(obj);
|
||||
foreach (var asset in package.GetAssetInfos("material"))
|
||||
{
|
||||
var materials = x.materials;
|
||||
foreach (var material in materials)
|
||||
{
|
||||
material.shader = Shader.Find(material.shader.name);
|
||||
}
|
||||
x.materials = materials;
|
||||
var assetHandle = package.LoadAssetAsync<Material>(asset.AssetPath);
|
||||
await assetHandle;
|
||||
if (destroyCancellationToken.IsCancellationRequested) return;
|
||||
if (assetHandle.AssetObject is not Material material) continue;
|
||||
material.shader = Shader.Find(material.shader.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user