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)); }
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)); } } }