Я сделал некоторые изменения.1 °, чтобы облегчить код временно, я использую коробки.2 ° Я использую математику. Практика шума, но некоторые сетки держатся подальше от других.3 ° Мне нужно строить участки с блоками, но они округлые.Пока я смог сделать это здесь, я оставлю коды и изображения, чтобы попытаться описать мою проблему.
Ошибка местности
Что мне нужносоздать
public void Start()
{
myPos = this.transform.position;
CreateMap(CreateMapMatrix(100, 40),100, 40);
}
public Vector3[,] CreateMapMatrix(int width, int height)
{
matrixMap = new Vector3[width, height];
for (int x = 0; x < width; x++)
{
for (int z = 0; z < height; z++)
{
float h = Mathf.PerlinNoise((seed + myPos.x + x) / width,
(myPos.z + z) / height) * x;
h = Mathf.Floor(h);
matrixMap[x, z] = new Vector3(h, 0, z);
}
}
return matrixMap;
}
void CreateMap(Vector3[,] pos, int width, int height)
{
for (int x = 0; x < width; x++)
{
for (int z = 0; z < height; z++)
{
GameObject Obj = Instantiate(hexTransform[0]);
Obj.transform.position = pos[x,z];
}
}
}