我想查找场景中附带特定脚本的游戏对象的数量(作为int值)。
例如:如果有5个带有脚本“ scoreai”的游戏对象,则int值“ length”应设置为5。
谢谢
答案 0 :(得分:3)
我建议您使用key_buffer_size
,而不是对一堆游戏对象进行查找(我还没有遇到过慢的问题,但是我被告知它足够重要,只需要很少使用)。 ,请参见下面的示例:
static int count
如果您的脚本不是static int buildingCount = 0;
protected void Awake()
{
buildingCount++;
print("BuildingCound: " + buildingCount);
}
,请将MonoBehaviour
放在脚本初始化/开始的位置。通常,它放在构造函数中。
答案 1 :(得分:2)
除非您还需要访问对象本身,否则DarceVader的答案将是性能更高的解决方案。
为此,您可以使用
var foundObjects = Object.FindObjectsOfType<YourComponentTypeHere>();
int count = foundObjects.Length;
编辑:添加了一行代码,以显示如何实际检索对象数以确保答案的完整性。
有关更多信息,请参见Object.FindObjectsOfType()的Unity文档