Unity:如何将在其自己的类中初始化的嵌套列表作为参数传递给方法?

Unity: How do I pass as a parameter, a nested list initialized in its own class, to a method?

提问人:Calvin 提问时间:1/6/2023 更新时间:1/7/2023 访问量:47

问:

我会尽量保持这一点。我创建了一个嵌套的游戏对象列表,其中包含:

[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, ??? ))

有人可以帮我填写???空白?

谢谢你转发。

我已经尝试了我能想到的所有参考组合。

unity-game-engine 方法 参数 传递 嵌套列表

评论


答:

0赞 vik 1/7/2023 #1

您可以只传递您创建的类型:

        ...
        StartCoroutine(MyTest(deck, allSlots));
    }
    private IEnumerator MyTest(List<GameObject> deck, Tablature tablature)
    {
        return null;
    }