Как сохранить измененную сетку во время выполнения? - PullRequest
0 голосов
/ 18 января 2019

В моей игре я модифицирую сетку во время выполнения, используя алгоритм повреждения.

После этого я бы хотел их сохранить.

Я получаю все меши с:

MeshFilter[] meshfilters = MyObject.GetComponentsInChildren<MeshFilter>();

тогда я изменяю одну сетку.

Как сохранить это в моем исходном файле FBX?

Спасибо

1 Ответ

0 голосов
/ 18 января 2019

Внутренний тип сетки Unity отличается от типа FBX, FBX - это формат хранения файлов, в то время как Unity использует другую внутреннюю структуру во время выполнения для большей эффективности.

Насколько я знаю, не существует стандартного способа сохранения сетки времени выполнения в виде FBX (это особенность программного обеспечения для 3D-моделирования, а не игрового движка)

Вы можете как-то сохранить свои деформации и повторно применить их при перезагрузке модели, когда я делал аналогичные вещи (пользовательские сгенерированные сетки ландшафта во время выполнения), я генерировал бы сетку во время выполнения, а затем сохранял данные, необходимые для генерации этого меш, затем передайте его в тот же поток, который я использовал для генерации меша.

Можно сериализовать сетчатые данные в редакторе Unity , так как сетчатые данные на самом деле отличаются от формата FBX (Unity читает FBX, затем генерирует актив сетки из данных FBX, затем связывает эту сетку с FBX) Вы делаете это, играя с AssetDatabase.CreateAsset() https://docs.unity3d.com/ScriptReference/AssetDatabase.CreateAsset.html

Но я не думаю, что это то, что вы намереваетесь сделать.

Если вам нужен полный набор функций FBX (создание обложек, анимация, использование в других проектах Unity) и вы хотите использовать их во время выполнения, у вас нет вариантов, о которых я знаю. За исключением реализации вашей собственной библиотеки сериализации FBX (не совсем разумное решение)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...