This commit is contained in:
CortexCore
2024-05-03 23:42:30 +08:00
parent af344397f9
commit 33d9ab5a06
5 changed files with 40 additions and 18 deletions

View File

@@ -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);
}
}
}