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()) ) { var materials = x.materials; foreach (var material in materials) { material.shader = Shader.Find(material.shader.name); } x.materials = materials; } } } }