我有些头疼要想弄清楚我需要以编程方式做些什么。 这是我班级的基本代码。
STATICFILES_FINDERS
我在Unity中使用此代码,所以我真的不知道 Wire 实例的Initialize()方法的执行顺序。
因此,创建一些Wire实例会构建一个层次结构,其中所有连接的线和子连接线都可以通过循环访问。
我遇到的问题是我想要一个Wire实例,循环认为所有可能的连接线和子连接线,但我不知道我有多少个Wire实例所以不可能用叠加的foreach循环“深度”迭代! (foreac(){foreach(){...?}})
我将如何以良好的方式实现这一目标?
答案 0 :(得分:1)
如果电线只连接一次,你可以这样做。
public class Wire
{
public List<Wire> connectedWires = new List<Wire>();
//Example var we want to set
public int i = 0;
public void Initialize()
{
//Initialization code
//Here we get all connected wires the actual one (this) and we put it in connected wire
}
public void LoopThroughWires()
{
//Do something with your wires or whatever
i++;
//Propagate to childs
foreach(Wire wire on connectedWires)
{
wire.LoopThroughWires();
}
}
}
请注意,同一线路的多个连接最终会多次调用该方法。
您可以使用visited
标记来解决该问题。