【问题标题】:How to access arrays or elements of a jagged array one by one?如何一一访问锯齿状数组的数组或元素?
【发布时间】:2019-06-26 12:33:22
【问题描述】:

我有一个锯齿状阵列,其中每个阵列都包含一个航路点系统。玩家在连接的航路点系统的分支地图中移动,因此当他们到达十字路口时,他们可以选择航路点系统“路径”来通过它。

这是我的代码:

在可序列化的脚本中,我有数组的一维:

public Transform[] Array;

public TransformSquareArray(Transform[] array)
{
    Array = array;
}

在另一个类中,锯齿状数组及其对应的数组:

public TransformSquareArray[] squarepointSystems = new TransformSquareArray[]
{

    new TransformSquareArray(new Transform[0]),
    new TransformSquareArray(new Transform[1]),
    new TransformSquareArray(new Transform[2]),
    new TransformSquareArray(new Transform[3]),
    new TransformSquareArray(new Transform[4]),
    new TransformSquareArray(new Transform[5]),
    new TransformSquareArray(new Transform[6])
};

通过这种方式,我可以在 Unity3d 检查器中编辑每个数组中有多少游戏对象。现在我想以这样的方式访问每个数组,我可以编辑玩家的“变换”,这样他们就可以在每个数组中“跳跃”以在其中移动。起初,我想制作一系列“转换”变量,每个变量都包含锯齿状的每个数组,但我不能这样做,要么是因为我没有以正确的方式做,要么是因为我失败了语法。但是因为这两个数组都没有名称,所以我尝试这样做(仅一个数组,例如):

 Transform[] firstRoute = squarepointSystems(new Transform[0]);

我不工作。我究竟做错了什么?谢谢。

【问题讨论】:

    标签: c# arrays unity3d jagged-arrays


    【解决方案1】:

    我做错了什么?

    您引用了一个公共变量 squarepointSystems,它是一个 TransformSquareArray 的数组,作为方法调用:squarepointSystems(new Transform[0])。我不确定您对代码的实际意图是什么,但事情可能会通过消歧得到澄清。这是一个破解,并查看编译器错误的突出显示(与我的相同):

    所以我认为您对代码尝试执行的操作以及混淆类/变量是错误的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-23
      • 2019-10-29
      • 2017-04-19
      • 1970-01-01
      相关资源
      最近更新 更多