40 lines
878 B
C#
40 lines
878 B
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using BITKit;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
namespace BITFALL.HotFix
|
|
{
|
|
public class FixShaderRuntime : MonoBehaviour
|
|
{
|
|
private void OnEnable()
|
|
{
|
|
SceneManager.sceneLoaded += Execute;
|
|
}
|
|
private void OnDisable()
|
|
{
|
|
SceneManager.sceneLoaded -= Execute;
|
|
}
|
|
[BIT]
|
|
public void Execute()
|
|
{
|
|
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 materials = x.materials;
|
|
foreach (var material in materials)
|
|
{
|
|
material.shader = Shader.Find(material.shader.name);
|
|
}
|
|
x.materials = materials;
|
|
}
|
|
}
|
|
}
|
|
}
|