c# - 比较 C#/Unity 中的列表并忽略项目

标签 c# list unity-game-engine compare vuforia

我在 Unity 中使用 Vuforia,它有一个名为 DefaultTrackableEventHandler 的内置脚本。 它有这样的代码;

protected virtual void OnTrackingFound()

{
    var rendererComponents = GetComponentsInChildren<Renderer>(true);

            foreach (var component in rendererComponents)
            component.enabled = true;
}

我有一些带有“ignoreRend”标签的项目,当跟踪找到目标图像时,我不想渲染这些项目。我有一个这样的列表:

GameObject[] ignoreTheseObjects = GameObject.FindGameObjectsWithTag("ignoreRend");

我一直在尝试找到一种方法,使 foreach 循环忽略我的ignoreTheseObjects 列表中的项目,但没有成功。感觉像是很容易编码的东西,但我被困住了......有什么方法可以比较列表中的项目吗?我尝试寻找答案,但没有找到任何适合这个问题的答案。我在想类似的事情;

            if (rendererComponents[i] == ignoreTheseObjects[i])

..但不知道如何进一步写。任何帮助将不胜感激!

最佳答案

使用 linq:

foreach (var component in rendererComponents.Where(r => r.gameObject.tag != "ignoreRend"))

关于c# - 比较 C#/Unity 中的列表并忽略项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54710308/

相关文章:

c# - String.Concat 低效代码?

c# - 多态和类型转换

c# - 加快在 C# 中处理大字符串数组的速度

python - 如何检查Python中的列表列表中是否存在某个元素?

list - Prolog:对列表中的子列表进行排序

html - UnityScript 音频问题

c# - 无法在 Windows XP 机器上启动 wpf 应用程序

c# - dotnet 中反射请求的排序

c# - 启用 Animator 会导致闪烁吗?

android - 在 Unity Android/iOS 中高效存储大量图像