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
    private static void ShowShadow(long uuid, Transform actorTarget, ActorParent actorParent, bool bHideShadow, int modelId = 0)
    {
        if (GameLevelManager.IsRealTimeShadowOn())
        {
            ShadowController.SetShadowModelRender(actorTarget, bHideShadow);
        }
        else
        {
            float scale = 1f;
            if (modelId > 0)
            {
                AvatarModel avatarModel = DataReader <AvatarModel> .Get(modelId);

                if (avatarModel != null)
                {
                    scale = avatarModel.projectorScale;
                }
            }
            ShadowSlicePlaneMgr.ShowShadowSlicePlane(uuid, actorTarget, actorParent, bHideShadow, scale);
        }
    }
Ejemplo n.º 3
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);
             }
         }
     }
 }