创建材料阵列的阵列

Create array of arrays of Materials

我发现了一些关于在 C# 中创建数组数组的结果,但我不清楚如何使用 Unity 中的 Material 类型来实现,where/if 我应该创建新实例.我想要一个名为 colorGroups 的数组,每个元素都有一个 Material 数组。我在检查器中设置了“粉色”和“蓝色”材质。也许我不应该让第一个数组成为 Materials 类型和 GameObject?

显然这行不通,但这是我目前所拥有的...

    public Material[][] colorGroups;
    public Material[] pinks;
    public Material[] blues;
    void Start()
    {
        colorGroups[0] = pinks;
        colorGroups[1] = blues;
    }

您必须初始化数组并定义数组的长度。否则您正在尝试引用尚不存在的内容。

void Start()
{
    // initializing colorGroups to be an array with a length of 2 in the 1st dimension
    this.colorGroups = new Material[2][];
    colorGroups[0] = pinks;
    colorGroups[1] = blues;
}

现在您可以将 Material 阵列(蓝调)分配给您的二维阵列。 您可以查看 this answer 以了解有关在 C# 中初始化二维数组的更多信息