gpt4 book ai didi

c# - 跟踪游戏对象的子级数量

转载 作者:行者123 更新时间:2023-11-30 21:56:15 26 4
gpt4 key购买 nike

我编写了这段代码来计算场景中游戏对象的子项。它有效,但感觉不像是最优雅的解决方案(特别是我每次都将 childCount 重置为 0 的那一行)。有人可以就此向我提供一些重写建议以使其更加精简吗?

public int childCount;

public void countChildren()
{
GameObject buildBoard = GameObject.FindGameObjectWithTag("Board");

GameObject[] allChildren = buildBoard.transform.Cast<Transform>().Select(t=>t.gameObject).ToArray();

childCount = 0;

for(int i = 0; i < allChildren.Length; i++)
{
childCount++;
}

Debug.Log(childCount);
}

最佳答案

您可以在 GameObject 类中创建一个静态变量。每次添加或删除任何内容时,您只需在类(class)内部对其进行更新即可。这个静态变量在每个 GameObject 中都是一致的,如果其中任何一个发生变化,都会反射(reflect)出来。通过提供只读属性,您可以从任何对象访问此计数。

public class GameObject
{
private static int childrenCount = 0;
public int ChildrenCount { get { return childrenCount; } }

// the rest of your logic
}

关于c# - 跟踪游戏对象的子级数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31644132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com