private void ShowSMRs(bool isPeopleShow) { List <Renderer> renderers = this.GetRenderers(); ShadowSlicePlane shadowSlicePlane = this.GetShadowSlicePlane(); if (renderers != null) { for (int i = 0; i < renderers.get_Count(); i++) { if (renderers.get_Item(i) != null) { renderers.get_Item(i).set_enabled(isPeopleShow); } } } if (shadowSlicePlane != null) { shadowSlicePlane.IsActorVisibleOn = isPeopleShow; } }
public static void ShowShadowSlicePlane(long uuid, Transform actorTarget, ActorParent actorParent, bool bHideShadow, float scale) { if (!bHideShadow) { Transform transform = actorTarget.FindChild("SP"); GameObject gameObject = (!(transform != null)) ? null : transform.get_gameObject(); if (gameObject == null) { gameObject = ResourceManager.GetInstantiate2Prefab("ShadowSlicePlane"); UGUITools.SetParent(actorTarget.get_gameObject(), gameObject, false, "SP"); Transform expr_5A = gameObject.get_transform(); expr_5A.set_localPosition(expr_5A.get_localPosition() + new Vector3(0f, 0.03f, 0f)); gameObject.get_transform().set_localEulerAngles(new Vector3(90f, 0f, 0f)); gameObject.get_transform().set_localScale(new Vector3(scale, scale, 1f)); ShadowSlicePlane shadowSlicePlane = gameObject.AddComponent <ShadowSlicePlane>(); shadowSlicePlane.uuid = uuid; shadowSlicePlane.m_root = actorTarget; shadowSlicePlane.m_actorParent = actorParent; shadowSlicePlane.m_meshRenderer = gameObject.GetComponent <MeshRenderer>(); shadowSlicePlane.SetShadowY(); } else { ShadowSlicePlane shadowSlicePlane = gameObject.GetComponent <ShadowSlicePlane>(); } gameObject.set_layer(actorTarget.get_gameObject().get_layer()); gameObject.SetActive(true); } else { Transform transform2 = actorTarget.FindChild("SP"); if (transform2 != null) { transform2.get_gameObject().SetActive(false); } } }
public static void InitShaderRenderers(Transform root, List <Renderer> shaderRenderers, ref Renderer shadowRenderer, ref ShadowSlicePlane shadowSlicePlane) { shaderRenderers.Clear(); Renderer[] componentsInChildren = root.GetComponentsInChildren <Renderer>(true); for (int i = 0; i < componentsInChildren.Length; i++) { Renderer renderer = componentsInChildren[i]; if (renderer == null) { Debug.LogError("item is null"); } else if (ShadowSlicePlaneMgr.IsShadow(renderer.get_gameObject())) { shadowRenderer = renderer; shadowSlicePlane = renderer.GetComponent <ShadowSlicePlane>(); if (shadowSlicePlane == null) { Debug.LogError("shadowSlicePlane is null"); } } else { shaderRenderers.Add(renderer); } } }