-1
Im пытается получить формы готовой шестнадцатеричной формы, которые уже созданы, чтобы выравниваться друг с другом в формировании сетки. Я получил сетку, но я не могу заставить гексы вписаться друг в друга. Исправлено y% 2, но так, как он настраивается, теперь он сбой.Попытка получить Hex-сетку
using UnityEngine;
using System.Collections;
public class boardObject : MonoBehaviour {
// Instantiates a prefab in a grid
public GameObject prefab;
public float gridX = 5f;
public float gridY = 5f;
public float spacing = 2f;
void Start() {
for (float y = 0.0f; y < gridY; y++) {
for (float x = 0.0f; x < gridX; x++) {
// THIS IS WHAT WAS MISSING FOR THIS TO ACTUALLY WORK MAKING A NEW VECTOR 3
// POSITION AFTER THE LOOP WAS SET UP. EACH NEW hex NEEDED HAVE A NEW POSITION. ->
Vector3 pos = new Vector3(x, 0.0f, y) * spacing;
//
//
//%2 thingy
if (y%2.0f==0.0f)
gridY += 0.5f;
else
gridY -= 0.0f;
Instantiate(prefab, pos, Quaternion.identity);
}
}
}
}
Первый рис является один я, второй это один я пытаюсь сделать. This is the square board hex
This is what I am trying to do
Я уверен, что 'у% 0' не является полезным. Вы имеете в виду 'y% 2'? – Draco18s
Спасибо, я исправил это, но он все еще не работает. – cflies1121
Я предполагаю, что горизонтальное расстояние не совпадает с вертикальным? Это связано с тем, что шестиугольники имеют разную ширину, чем высоту (по сравнению с квадратами), поэтому вам придется умножать значения 'x' и' y' на разные суммы вместо того, чтобы умножать весь вектор (что является путаной вещью в любом случае) , – Draco18s