提问人:Calvin 提问时间:1/6/2023 更新时间:1/7/2023 访问量:47
Unity:如何将在其自己的类中初始化的嵌套列表作为参数传递给方法?
Unity: How do I pass as a parameter, a nested list initialized in its own class, to a method?
问:
我会尽量保持这一点。我创建了一个嵌套的游戏对象列表,其中包含:
[System.Serializable] public class TabSlots { public List<GameObject> tabslots; } [System.Serializable] public class Tablature { public List<TabSlots> tablature; } public Tablature allSlots = new Tablature();
这效果很好,我能够删除适当的游戏对象 添加到检查器中各自的插槽中,其层次结构如下所示:
AllSlots(这是嵌套列表的根目录) 指法谱(12个元素) 制表符(3 个元素)
我能够成功访问选项卡槽中每个游戏对象的组件。在下面的示例中,我将 deck[0] 中的对象移动到 allSlots.tablature[0].tabslots[0] 的位置。(deck 只是一个游戏对象的单级列表)
deck[0].transform.position = Vector2.MoveTowards(deck[0].transform.position, allSlots.tablature[0].tabslots[0].transform.position, 70f * Time.deltaTime);
我的问题:如何发送由以下人员创建的嵌套列表:public Tablature allSlots = new Tablature();到 IEnumerator 方法?
我已经尝试了我能想到的所有可能的调用组合(???表示未发现的代码)。
StartCoroutine(MyTest(deck, ??? ));
并且还尝试了我能想到的 IEnumertor 方法中的参数列表(???表示未发现的代码)。
IEnumerator MyTest((List<GameObject> list1, ??? ))
有人可以帮我填写???空白?
谢谢你转发。
我已经尝试了我能想到的所有参考组合。
答:
您可以只传递您创建的类型:
...
StartCoroutine(MyTest(deck, allSlots));
}
private IEnumerator MyTest(List<GameObject> deck, Tablature tablature)
{
return null;
}
评论