示例#1
0
 private bool MatchingMode(Renderer renderer, RenderersAddingMode mode)
 {
     return
         ((!(renderer is MeshRenderer) && !(renderer is SkinnedMeshRenderer) && !(renderer is SpriteRenderer) && (mode & RenderersAddingMode.Others) != RenderersAddingMode.None) ||
          (renderer is MeshRenderer && (mode & RenderersAddingMode.MeshRenderer) != RenderersAddingMode.None) ||
          (renderer is SpriteRenderer && (mode & RenderersAddingMode.SpriteRenderer) != RenderersAddingMode.None) ||
          (renderer is SkinnedMeshRenderer && (mode & RenderersAddingMode.SkinnedMeshRenderer) != RenderersAddingMode.None));
 }
示例#2
0
        public void AddAllChildRenderersToRenderingList(RenderersAddingMode renderersAddingMode = RenderersAddingMode.All)
        {
            outlineTargets.Clear();
            var renderers = GetComponentsInChildren <Renderer>(true);

            foreach (var renderer in renderers)
            {
                if (!MatchingMode(renderer, renderersAddingMode))
                {
                    continue;
                }

                var submeshesCount = GetSubmeshCount(renderer);
                for (var index = 0; index < submeshesCount; index++)
                {
                    outlineTargets.Add(new OutlineTarget(renderer, index));
                }
            }
        }