SetNeighbors не работает? [SmallCode example]
Добавлено: 28 фев 2023, 22:36
Здравствуйте, я пытаюсь написать бесшовный мир. Я создаю карту высот и проецирую ее на исходную местность. Генерация происходит в методе Start. Все работает нормально до того момента, когда вам нужно прикрепить соседний террайн к существующему.
(Не понимаю как вставить правильно картинки, по этому здесь ссылки)
https://ibb.co/m9scxhC
Я пытаюсь установить соседей с помощью SetNeighbors, но у меня это не работает, созданный ландшафт помещается поверх основного ландшафта и не сохраняет его карту высот.
https://ibb.co/yPDh5rn
Here is a little code on how I do it.
После метода Start идет метод update, где я устанавливаю соседей на 100-м кадре (неважно, был это кадр 3 или 100). Я прошерстил Интернет в поисках этой ошибки и безрезультатно, изменил версию Unity с 2021.319f1 на 2020.3.45f1. Я также использовал Flush() (если ссылаться на ответы других людей)
(Не понимаю как вставить правильно картинки, по этому здесь ссылки)
https://ibb.co/m9scxhC
Я пытаюсь установить соседей с помощью SetNeighbors, но у меня это не работает, созданный ландшафт помещается поверх основного ландшафта и не сохраняет его карту высот.
https://ibb.co/yPDh5rn
Here is a little code on how I do it.
Синтаксис:
Используется csharp
void Start() {
//create a new terrain
GameObject leftTerrainNeighbor = Terrain.CreateTerrainGameObject(
new TerrainData()
{
size = new Vector3(100, 0, 100),
heightmapResolution = 513,
}
);
//get its component
leftTerrain = leftTerrainNeighbor.GetComponent<Terrain>();
}
void Update() {
if(Time.frameCount == 100){
mainTerrain.SetNeighbors(null, null, leftTerrain, null);
leftTerrain.SetNeighbors(mainTerrain, null, null, null);
Terrain.SetConnectivityDirty();
}
}
//create a new terrain
GameObject leftTerrainNeighbor = Terrain.CreateTerrainGameObject(
new TerrainData()
{
size = new Vector3(100, 0, 100),
heightmapResolution = 513,
}
);
//get its component
leftTerrain = leftTerrainNeighbor.GetComponent<Terrain>();
}
void Update() {
if(Time.frameCount == 100){
mainTerrain.SetNeighbors(null, null, leftTerrain, null);
leftTerrain.SetNeighbors(mainTerrain, null, null, null);
Terrain.SetConnectivityDirty();
}
}
После метода Start идет метод update, где я устанавливаю соседей на 100-м кадре (неважно, был это кадр 3 или 100). Я прошерстил Интернет в поисках этой ошибки и безрезультатно, изменил версию Unity с 2021.319f1 на 2020.3.45f1. Я также использовал Flush() (если ссылаться на ответы других людей)