Как следует из названия, я пытаюсь создать процедурную шестнадцатеричную сетку в Unity, используя С#.
void Start ()
{
//5 mid
startRowSize = 5;
for (int i = 0; i < startRowSize; i++)
{
GameObject newHex = (GameObject)Instantiate(hex);
hexWidth = newHex.gameObject.renderer.bounds.size.z;
newHex.transform.Rotate(new Vector3(0,30,0));
newHex.transform.position = new Vector3((i * hexWidth),0,0);
}
for (int row = 0; row <= startRowSize-1; row ++)
{
for (int i = 0; i < row; i++)
{
GameObject newHex = (GameObject)Instantiate(hex);
newHex.transform.Rotate(new Vector3(0,30,0));
newHex.transform.position = new Vector3(((i*hexWidth)+((hexWidth/2))+(row*(hexWidth/2))),0,((startRowSize-row))*-(hexWidth/1.17f));
}
}
}
Код работает, однако строки генерируются «назад», то есть внешние строки содержат большее количество гексов, а внутренние строки содержат наименьшее.
Очевидно, это противоположный эффект, которого я пытаюсь достичь. Я возился с этим кодом часами и не могу понять, почему.
есть идеи?