Страница 1 из 1

Создание префаба террейна

СообщениеДобавлено: 18 апр 2016, 10:34
diana
Создаю динамически землю, сохраняю в префаб. Префаб создается пустой - terraindata не сохраняется, а у дорог не сохраняется mesh. В редакторе запускаю - все создается так как надо, перетаскиваю в project - создается префаб без данных.
Не знаю, в какую сторону копать. Может, у кого была похожая ситуация?

Re: Создание префаба террейна

СообщениеДобавлено: 18 апр 2016, 10:56
Diab10
Нужно ещё сохранить terraindata и Mesh в папку ассетов.
http://forum.unity3d.com/threads/save-t ... set.65316/

Re: Создание префаба террейна

СообщениеДобавлено: 18 апр 2016, 11:48
diana
да-да, сохраняю пока так, но splatmap не сохраняется, а меш без материала сохраняется. Если сделать такой же террейн ручками в редакторе, то простым переносом в проджект создается префаб со всеми данными - terraindata и splatmap полностью сохранены, деревья и трава на месте, меш с материалом. Почему программно не создается так же?

Re: Создание префаба террейна

СообщениеДобавлено: 18 апр 2016, 12:59
Diab10
Потому что при создании террейна из меню - террейнДата создаётся автоматически. Если хотите создавать его из скрипта - сохраняйте дату и сплатмапу отдельно. То же самое и с мешем и его материалами/текстурами

Re: Создание префаба террейна

СообщениеДобавлено: 18 апр 2016, 13:33
diana
с сохранением сплатмапы у меня ступор - не знаю, как это сделать.

Re: Создание префаба террейна

СообщениеДобавлено: 18 апр 2016, 13:47
Diab10
Ну наверно просто как картинку

Re: Создание префаба террейна

СообщениеДобавлено: 18 апр 2016, 13:51
diana
наверно это не просто - гуглю уже не один день, не нашла как это сделать.

Re: Создание префаба террейна

СообщениеДобавлено: 20 апр 2016, 09:31
diana
оказалось все просто - сохранять alphamapTextures тоже в ассеты.

for (int i = 0; i < obj.GetComponent<Terrain>().terrainData.alphamapTextures.Length; i++)
AssetDatabase.CreateAsset(obj.GetComponent<Terrain>().terrainData.alphamapTextures[i], "Assets/Resources/" + obj.name + "_" + i);