创建由较小六边形组成的六边形。统一,c#
我使用9个类似的循环来创建这样的六边形,它由更小的六边形组成 我的问题是 如何将9个for循环替换为1个for循环?任何想法,非常感谢 中柱创建由较小六边形组成的六边形。统一,c#,c#,unity3d,C#,Unity3d,我使用9个类似的循环来创建这样的六边形,它由更小的六边形组成 我的问题是 如何将9个for循环替换为1个for循环?任何想法,非常感谢 中柱 (x=0,y=(-4;4) for (int x = 0; x < 1; x++) { for (int y = 4; y > -5; y--) { Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0
(x=0,y=(-4;4)
for (int x = 0; x < 1; x++)
{
for (int y = 4; y > -5; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=0,y=(-4;4)
对于(int x=0;x<1;x++)
{
对于(int y=4;y>-5;y--)
{
实例化(单元,新向量2(x,y),四元数.Euler(0.0f,0.0f,90.0f));
}
}
右第一列
(x=1,y=(-3.5;3.5))
for (float x = 0.75f; x < 1.75; x++)
{
for (float y = 3.5f; y > -4.5; y--)
{
Instantiate(cell, new Vector2(x,y), Quaternion.Euler(0.0f,0.0f,90.0f));
}
}
(x=2,y=(-3;3))
for (float x = 1.5f; x < 2.5f; x++)
{
for (int y = 3; y > -4; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=3,y=(-2.5;2.5))
for (float x = 2.25f; x < 3.25; x++)
{
for (float y = 2.5f; y > -3.5; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=4,y=(-2;2))
for (int x = 3; x < 4; x++)
{
for (int y = 2; y > -3; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=1,y=(-3.5;3.5))
用于(浮动x=0.75f;x<1.75;x++)
{
对于(浮动y=3.5f;y>-4.5;y--)
{
实例化(单元,新向量2(x,y),四元数.Euler(0.0f,0.0f,90.0f));
}
}
右第二列
(x=1,y=(-3.5;3.5))
for (float x = 0.75f; x < 1.75; x++)
{
for (float y = 3.5f; y > -4.5; y--)
{
Instantiate(cell, new Vector2(x,y), Quaternion.Euler(0.0f,0.0f,90.0f));
}
}
(x=2,y=(-3;3))
for (float x = 1.5f; x < 2.5f; x++)
{
for (int y = 3; y > -4; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=3,y=(-2.5;2.5))
for (float x = 2.25f; x < 3.25; x++)
{
for (float y = 2.5f; y > -3.5; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=4,y=(-2;2))
for (int x = 3; x < 4; x++)
{
for (int y = 2; y > -3; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=2,y=(-3;3))
对于(浮动x=1.5f;x<2.5f;x++)
{
对于(int y=3;y>-4;y--)
{
实例化(单元,新向量2(x,y),四元数.Euler(0.0f,0.0f,90.0f));
}
}
第三栏右
(x=1,y=(-3.5;3.5))
for (float x = 0.75f; x < 1.75; x++)
{
for (float y = 3.5f; y > -4.5; y--)
{
Instantiate(cell, new Vector2(x,y), Quaternion.Euler(0.0f,0.0f,90.0f));
}
}
(x=2,y=(-3;3))
for (float x = 1.5f; x < 2.5f; x++)
{
for (int y = 3; y > -4; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=3,y=(-2.5;2.5))
for (float x = 2.25f; x < 3.25; x++)
{
for (float y = 2.5f; y > -3.5; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=4,y=(-2;2))
for (int x = 3; x < 4; x++)
{
for (int y = 2; y > -3; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=3,y=(-2.5;2.5))
用于(浮动x=2.25f;x<3.25;x++)
{
对于(浮动y=2.5f;y>-3.5;y--)
{
实例化(单元,新向量2(x,y),四元数.Euler(0.0f,0.0f,90.0f));
}
}
右第四列
(x=1,y=(-3.5;3.5))
for (float x = 0.75f; x < 1.75; x++)
{
for (float y = 3.5f; y > -4.5; y--)
{
Instantiate(cell, new Vector2(x,y), Quaternion.Euler(0.0f,0.0f,90.0f));
}
}
(x=2,y=(-3;3))
for (float x = 1.5f; x < 2.5f; x++)
{
for (int y = 3; y > -4; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=3,y=(-2.5;2.5))
for (float x = 2.25f; x < 3.25; x++)
{
for (float y = 2.5f; y > -3.5; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=4,y=(-2;2))
for (int x = 3; x < 4; x++)
{
for (int y = 2; y > -3; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=4,y=(-2;2))
对于(int x=3;x<4;x++)
{
对于(int y=2;y>-3;y--)
{
实例化(单元,新向量2(x,y),四元数.Euler(0.0f,0.0f,90.0f));
}
}
左第一列
(x=-1,y=(-3.5;3.5))
for (float x = -0.75f; x < 0.25; x++)
{
for (float y = 3.5f; y > -4.5; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-2,y=(-3;3))
for (float x = -1.5f; x < -0.5f; x++)
{
for (int y = 3; y > -4; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-3,y=(-2.5;2.5))
for (float x = -2.25f; x < -1.25; x++)
{
for (float y = 2.5f; y > -3.5; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-4,y=(-2;2))
for (int x = -3; x < -2; x++)
{
for (int y = 2; y > -3; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-1,y=-3.5;3.5))
对于(浮点x=-0.75f;x<0.25;x++)
{
对于(浮动y=3.5f;y>-4.5;y--)
{
实例化(单元,新向量2(x,y),四元数.Euler(0.0f,0.0f,90.0f));
}
}
第二列左
(x=-1,y=(-3.5;3.5))
for (float x = -0.75f; x < 0.25; x++)
{
for (float y = 3.5f; y > -4.5; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-2,y=(-3;3))
for (float x = -1.5f; x < -0.5f; x++)
{
for (int y = 3; y > -4; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-3,y=(-2.5;2.5))
for (float x = -2.25f; x < -1.25; x++)
{
for (float y = 2.5f; y > -3.5; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-4,y=(-2;2))
for (int x = -3; x < -2; x++)
{
for (int y = 2; y > -3; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-2,y=-3)
对于(浮动x=-1.5f;x<-0.5f;x++)
{
对于(int y=3;y>-4;y--)
{
实例化(单元,新向量2(x,y),四元数.Euler(0.0f,0.0f,90.0f));
}
}
第三列左
(x=-1,y=(-3.5;3.5))
for (float x = -0.75f; x < 0.25; x++)
{
for (float y = 3.5f; y > -4.5; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-2,y=(-3;3))
for (float x = -1.5f; x < -0.5f; x++)
{
for (int y = 3; y > -4; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-3,y=(-2.5;2.5))
for (float x = -2.25f; x < -1.25; x++)
{
for (float y = 2.5f; y > -3.5; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-4,y=(-2;2))
for (int x = -3; x < -2; x++)
{
for (int y = 2; y > -3; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-3,y=-2.5;2.5))
对于(浮点x=-2.25f;x<-1.25;x++)
{
对于(浮动y=2.5f;y>-3.5;y--)
{
实例化(单元,新向量2(x,y),四元数.Euler(0.0f,0.0f,90.0f));
}
}
左第四列
(x=-1,y=(-3.5;3.5))
for (float x = -0.75f; x < 0.25; x++)
{
for (float y = 3.5f; y > -4.5; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-2,y=(-3;3))
for (float x = -1.5f; x < -0.5f; x++)
{
for (int y = 3; y > -4; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-3,y=(-2.5;2.5))
for (float x = -2.25f; x < -1.25; x++)
{
for (float y = 2.5f; y > -3.5; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-4,y=(-2;2))
for (int x = -3; x < -2; x++)
{
for (int y = 2; y > -3; y--)
{
Instantiate(cell, new Vector2(x, y), Quaternion.Euler(0.0f, 0.0f, 90.0f));
}
}
(x=-4,y=-2)
对于(int x=-3;x<-2;x++)
{
对于(int y=2;y>-3;y--)
{
实例化(单元,新向量2(x,y),四元数.Euler(0.0f,0.0f,90.0f));
}
}
我需要这个:
一个公式创建了整个六边形四元数rot=Quaternion.Euler(0.0f,0.0f,90.0f);
Quaternion rot = Quaternion.Euler(0.0f, 0.0f, 90.0f);
for (int x = -4; x <= 4; x++)
{
float xPos = x * 0.75F;
int nrOfYTiles = 9 - Math.Abs(x);
int halfNrOfYTiles = nrOfYTiles / 2;
float yOffset = 0.5F * Math.Abs(x % 2);
for (int y = 0; y < nrOfYTiles; y++)
{
float yPos = y - halfNrOfYTiles + yOffset;
Instantiate(cell, new Vector2(xPos, yPos), rot);
}
}
对于(int x=-4;x@TimMarkin,请参见。@TimMarkin如果答案正确,请接受它。