public static void CacheShader() { m_bLoadedShaderList = true; var main = ResourceManager.LoadPrefab(typeof(GameObject), "shader/shaderslist.jpg", "shaderslist"); if (main != null) { GameObject clone = GameObject.Instantiate(main.m_UObjectList[0]) as GameObject; GameObject.DontDestroyOnLoad(clone); ShadersList _shaderslist = clone.GetComponent <ShadersList>(); foreach (Shader _shader in _shaderslist.list) { if (!m_ShaderList.ContainsKey(_shader.name)) { m_ShaderList.Add(_shader.name, _shader); } } //GameObject.Destroy(main); UnityEngine.Debug.Log("加载shaderslist成功,加载" + m_ShaderList.Count.ToString() + "个shader"); } else { UnityEngine.Debug.LogError("加载shaderslist失败"); } }
public static void CacheShader(object _this) { UnityEngine.Debug.LogError("ShaderManager CacheShader bug fix"); ClassPrivateTool.SetStaticPrivateField(typeof(ShaderManager), "m_bLoadedShaderList", true); var main = ResourceManager.LoadPrefab(typeof(GameObject), "shader/shaderslist.jpg", "shaderslist"); if (main != null) { GameObject clone = (GameObject)GameObject.Instantiate(main.m_UObjectList[0]); GameObject.DontDestroyOnLoad(clone); ShadersList _shaderslist = clone.GetComponent(typeof(ShadersList)) as ShadersList; Dictionary <string, Shader> m_ShaderList = (Dictionary <string, Shader>)ClassPrivateTool.GetStaticPrivateField(typeof(ShaderManager), "m_ShaderList"); foreach (Shader _shader in _shaderslist.list) { if (!m_ShaderList.ContainsKey(_shader.name)) { UnityEngine.Debug.Log("Bugs_GameDll_ShaderManager, CacheShader, Add shader:" + _shader.name); m_ShaderList.Add(_shader.name, _shader); } } //GameObject.Destroy(main); UnityEngine.Debug.Log("加载shaderslist成功,加载" + m_ShaderList.Count.ToString() + "个shader"); } else { UnityEngine.Debug.LogError("加载shaderslist失败"); } }