private void ResetSrcMaterials(Material[] materials) { for (int i = 0; i < materials.Length; i++) { ActorHitEffectBase.SetHitValue(materials[i], 1f); } }
private void SetHitValue(float value) { if (this.m_hitRenderer == null && this.m_hitRenderer.get_material()) { return; } ActorHitEffectBase.SetHitValue(this.m_hitRenderer.get_material(), value); }
public static void InitHitEffects(List <Renderer> shaderRenderers, List <ActorHitEffectBase> hitControls) { if (!SystemConfig.IsShaderEffectOn) { return; } if (shaderRenderers == null || shaderRenderers.get_Count() == 0) { return; } hitControls.Clear(); for (int i = 0; i < shaderRenderers.get_Count(); i++) { if (!(shaderRenderers.get_Item(i) == null)) { if (!LayerSystem.IsSpecialEffectLayers(shaderRenderers.get_Item(i).get_gameObject().get_layer())) { for (int j = 0; j < shaderRenderers.get_Item(i).get_sharedMaterials().Length; j++) { Material material = shaderRenderers.get_Item(i).get_sharedMaterials()[j]; if (material != null && material.get_shader() != null) { ActorHitEffectBase actorHitEffectBase = null; Shader shader = material.get_shader(); bool flag = false; if (!flag) { int k = 0; while (k < ShaderEffectUtils.HitShaders.Length) { if (shader.get_name().Equals(ShaderEffectUtils.HitShaders[k])) { if (actorHitEffectBase != null && actorHitEffectBase is ActorHitEffect) { actorHitEffectBase.set_enabled(true); flag = true; break; } if (actorHitEffectBase != null) { actorHitEffectBase.set_enabled(false); } actorHitEffectBase = shaderRenderers.get_Item(i).get_gameObject().AddMissingComponent <ActorHitEffect>(); flag = true; break; } else { k++; } } } if (flag && actorHitEffectBase != null) { actorHitEffectBase.Init(shaderRenderers.get_Item(i)); hitControls.Add(actorHitEffectBase); break; } } } } } } }