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

@@ -6,7 +6,10 @@
"GUID:709caf8d7fb6ef24bbba0ab9962a3ad0",
"GUID:3e9ced9430d8ee743b37f99f97066130",
"GUID:2b6752324f5c76d4cad13e2095c77b9e",
"GUID:49b49c76ee64f6b41bf28ef951cb0e50"
"GUID:49b49c76ee64f6b41bf28ef951cb0e50",
"GUID:f51ebe6a0ceec4240a699833d6309b23",
"GUID:296866320aab85a42a0403bf684bac59",
"GUID:e34a5702dd353724aa315fb8011f08c3"
],
"includePlatforms": [],
"excludePlatforms": [],

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