private void CheckMaterials() { if (this.actor.TheActorMeta.ActorType != ActorTypeDef.Actor_Type_Hero && this.actor.TheActorMeta.ActorType != ActorTypeDef.Actor_Type_Monster) { return; } SkinnedMeshRenderer[] componentsInChildren = base.gameObject.GetComponentsInChildren <SkinnedMeshRenderer>(); if (componentsInChildren == null || componentsInChildren.Length == 0) { return; } try { for (int i = 0; i < componentsInChildren.Length; i++) { SkinnedMeshRenderer skinnedMeshRenderer = componentsInChildren[i]; if (!HeroMaterialUtility.IsHeroBattleShader(skinnedMeshRenderer.sharedMaterial)) { Shader shader = Shader.Find("S_Game_Hero/Hero_Battle"); if (shader != null) { skinnedMeshRenderer.material.shader = shader; } } } } catch (Exception) { } }
public void EnableDynamicShadow() { if (this.mats != null) { return; } bool flag = false; bool flag2 = true; Renderer[] componentsInChildren = base.gameObject.GetComponentsInChildren <Renderer>(); for (int i = 0; i < componentsInChildren.Length; i++) { Renderer renderer = componentsInChildren[i]; if (!(renderer.gameObject == this.shadowMesh)) { Material sharedMaterial = renderer.sharedMaterial; if (HeroMaterialUtility.IsHeroBattleShader(sharedMaterial)) { bool flag3; bool translucent; bool flag4; HeroMaterialUtility.GetShaderProperty(sharedMaterial.shader.name, out flag3, out translucent, out flag4); if (flag2 != flag3 || flag4 != flag) { string name = HeroMaterialUtility.MakeShaderName(sharedMaterial.shader.name, flag2, translucent, flag); Shader shader = Shader.Find(name); if (shader != null) { renderer.material.shader = shader; this.AddShadowedMat(ref this.mats, renderer.material, flag2); } } else { this.AddShadowedMat(ref this.mats, renderer.material, flag2); } } } } this.CalcHeight(); }