Как сохранить меши в игре [не в режиме редактора]?

Я пробовал Assetdatabase, а потом узнал, что он работает только в режиме редактора... Как я могу сохранить Mesh сейчас в режиме воспроизведения, а затем я также хочу загрузить его??

var savePath1 = "Assets/" + saveMaterial + ".asset";
if (AssetDatabase.LoadAssetAtPath(savePath1, typeof(Mesh))) {
    AssetDatabase.DeleteAsset(savePath1);
    AssetDatabase.CreateAsset(pf.mesh, savePath1);
    //here pf is a reference of sphere(gameobject)   
}

Пожалуйста, добавьте код того, что вы пробовали до сих пор

derHugo 10.04.2019 08:21

спасибо @derHugo, я знаю, как использовать Assetdatabse... я не знаю ни одного уже существующего метода для сохранения меша в игровом режиме... я немного обновляю свою проблему. на самом деле это означает, что он выдаст ошибку, когда я соберу его с помощью Assetdatabase.Create() в сценарии С#.

adarsh 10.04.2019 08:25

Итак, мне нужен метод или способ хранения сетки, чтобы я мог хранить и загружать сетку даже после сборки игры... [Надеюсь, теперь вы поняли проблему]

adarsh 10.04.2019 08:27

Кроме того, я искал много вопросов по этому поводу. Один из них, который я получил, заключался в том, буду ли я использовать Unity Resource.Load(), это поможет при загрузке данных ... но я до сих пор не знаю, как хранить.

adarsh 10.04.2019 08:34
Как задать хороший вопрос? ваш вопрос слишком широк. Я не вижу, как вы в настоящее время получаете и храните свою сетку. Существуют много форматов файлов, которые можно использовать для хранения и загрузки мешей во время выполнения (STL, OBJ, FBX, COLLADA и т. д.). например UnityFBXExporter или Экспортер сцены OBJ
derHugo 10.04.2019 08:34
docs.unity3d.com/ScriptReference/… .... этот для загрузки
adarsh 10.04.2019 08:37
docs.unity3d.com/ScriptReference/AssetDatabase.CreateAsset.h‌​tml .. этот для хранения.
adarsh 10.04.2019 08:38

Я знаю, какие методы существуют, но, пожалуйста, добавьте свой код ... Я не знаю, какие типы файлов/параметров вы туда передаете и как именно вы это использовать.

derHugo 10.04.2019 08:39

@derHugo добавил, и спасибо тоже

adarsh 10.04.2019 08:45
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
9
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сетка - это относительно простая структура, для одной подсетки вы можете довольно легко сериализовать в json или другой формат во время выполнения.

[System.Serializable]
public class MeshEquivalent
{
    public Vector3[] vertices;
    public Vector3[] normals;
    public Vector2[] uv;
    public int[] triangles;
    public MeshEquivalent(Mesh mesh)
    {
        vertices = mesh.vertices;
        uv = mesh.uv;
        normals = mesh.normals;
        triangles = mesh.triangles;
    }
}

Есть также другие uv-каналы (которые вам могут не понадобиться), подсетки (те же самые) и границы, которые вы можете пересчитать. Противоположный процесс может быть использован для восстановления этой сетки.

Другие вопросы по теме