Ejemplo n.º 1
0
 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);
         }
     }
 }
Ejemplo n.º 2
0
 public static void SetIsNearCamera(Transform root, bool isHide = false)
 {
     if (!SystemConfig.IsFindOcclusionByCameraOn)
     {
         return;
     }
     if (!SystemConfig.IsShaderEffectOn)
     {
         return;
     }
     if (root == null)
     {
         return;
     }
     Renderer[] componentsInChildren = root.GetComponentsInChildren <Renderer>(true);
     for (int i = 0; i < componentsInChildren.Length; i++)
     {
         Renderer renderer = componentsInChildren[i];
         if (!LayerSystem.IsSpecialEffectLayers(renderer.get_gameObject().get_layer()) && !ShadowSlicePlaneMgr.IsShadow(renderer.get_gameObject()))
         {
             Material[] materials = renderer.get_materials();
             if (materials != null && materials.Length > 0)
             {
                 AdjustTransparency adjustTransparency = renderer.get_gameObject().AddMissingComponent <AdjustTransparency>();
                 adjustTransparency.SetIsNearCamera(isHide);
             }
         }
     }
 }