C# Unity 2D阵列平铺贴图

C# Unity 2D阵列平铺贴图,c#,arrays,unity3d,2d,C#,Arrays,Unity3d,2d,我对Unity和C#都是新手。然而,我正在尝试制作一个简单的2D平台游戏,其中我制作了一个名为Block的预制对象。我希望能够创建一个0和1的数组平铺贴图,其中1是块,0什么都不是。另外,我不希望平铺贴图是随机的。我想从另一个名为GameController的对象实例化这些块。我想实现的一个完美例子就是这样的 但我真的不知道如何使用数组来实现这一点。我想让事情变得简单,因为我正在努力学习unity和c#是如何工作的。任何帮助都将不胜感激。因此您可以使用资产存储中的一些资产(例如:)这是一个相当

我对Unity和C#都是新手。然而,我正在尝试制作一个简单的2D平台游戏,其中我制作了一个名为Block的预制对象。我希望能够创建一个0和1的数组平铺贴图,其中1是块,0什么都不是。另外,我不希望平铺贴图是随机的。我想从另一个名为GameController的对象实例化这些块。我想实现的一个完美例子就是这样的


但我真的不知道如何使用数组来实现这一点。我想让事情变得简单,因为我正在努力学习unity和c#是如何工作的。任何帮助都将不胜感激。

因此您可以使用资产存储中的一些资产(例如:)这是一个相当困难的挑战。我想推荐这段视频:,但最接近您想要实现的是:
希望能有所帮助。

您可以制作一个二维数组,例如int[40100]并在其中循环两次,如果数组中的数字为1,则将您在数组中的位置分别乘以块的长度或宽度。例如:

int[,] positions = new int[40,100];

for (int i = 0; i < 41; i++) {
    for (int j = 0; j < 100; j++) {
        if (positions[i,j] = 1) {
            GameObject temp = Instantiate(block, new Vector3(j * blockWidth, i * blockHeight, 0), Quaternion.identity) as GameObject;
        }
    }
}
int[,]位置=新的int[40100];
对于(int i=0;i<41;i++){
对于(int j=0;j<100;j++){
if(位置[i,j]=1){
GameObject temp=实例化(块,新向量3(j*blockWidth,i*blockHeight,0),四元数.identity)作为GameObject;
}
}
}

为这么大的数组设置所有坐标需要很长时间,但是您可以使用参数循环,或者如果数组较小,则只需使用较难的方法。否则,我会尝试在没有脚本的情况下执行此操作。

此视频确实有帮助,但我想我忘了提及我不希望平铺贴图是随机的,我希望能够通过使用0和1来指定平铺是否将通过数组,对块使用1,我认为这与你的目标类似:他安排作品的方式与你想要的标题相同,唯一的区别是他的数组为10101010,而不是下一行,这正是我想要做的,谢谢。但是如何将数组精确地分配给0和1呢?如果我的问题看起来很愚蠢,我很抱歉。@nico.user,一种方法可能是制作网格,如果单击网格中的某个空间,请在那里添加一个块。然后,在运行时之后保存网格。这并不容易,但比手动输入所有的1和0更容易。我想不出更好的办法了