c# - 在 Unity 中使用标签访问所有对象的脚本

标签 c# foreach unity3d

我的问题很简单,如何通过 foreach 访问我的游戏对象自定义 C# 脚本。

我试过以下方法:

foreach(TowerController go in GameObject.FindGameObjectsWithTag("Tower")) {
        go.upgradeTowerProgress = false;    
    }

好像不行。不知道为什么,这就是为什么我在这里问! xD

TowerController 是我在带有 Tower 标签的游戏​​对象上的自定义脚本。

最佳答案

这应该有效(未经测试):

foreach(GameObject go in GameObject.FindGameObjectsWithTag("Tower")) {
        go.GetComponent<TowerController>().upgradeTowerProgress = false;    
    }

我改变的是你正在迭代一个 GameObject 数组,所以你需要做 foreach(GameObject go...,然后你使用 GetComponent 函数来获取组件TowerController 类型,然后您可以访问其 updateTowerProgressTHIS 页面始终是一个很好的引用。

关于c# - 在 Unity 中使用标签访问所有对象的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14517733/

相关文章:

c# - Unity C#,如何从另一个脚本调用一个函数来启动动画?

c# - 带有可选文本限定符的批量插入

php - foreach 中 kohana orm find_all() 的奇怪行为

java - 使用交替列表避免越界

javascript - 我如何将 foreach 按钮单个值传递给 javascript?

Unity3D, "knocked away"类型的光源对象?

c# - 将 SQL 日期转换为 dd-mmmm-yyyy C#

JavaScript:单击复选框启用文本框

c# - NLS 环境设置和 Oracle Managed ODP.Net

c# - 使用枚举类型的 JSON 反序列化