Создание объекта сценария во время выполнения - он создает экземпляры, но не сохраняет их в папке ресурсов? - PullRequest
1 голос
/ 27 октября 2019

enter image description here Итак, у меня небольшой вопрос: я впервые создаю объекты сценариев из данных электронной таблицы, пытаясь использовать базу данных для их автоматического создания ...

for (int m = 0; m < myAssets.Count; m++)
            {
               Drill_WordBase newWordAsset = ScriptableObject.CreateInstance<Drill_WordBase>();

                // overwrite the defaults with the json data
                newWordAsset.word = word;
                    newWordAsset.isTrue = false;
                    myList.Add(newWordAsset);

                AssetDatabase.CreateAsset(newWordAsset, "Assets/DrillWords/" + newWordAsset.name);
                AssetDatabase.SaveAssets();
                AssetDatabase.Refresh();
                EditorUtility.FocusProjectWindow();
                Selection.activeObject = newWordAsset;
            }

это «частично работает», однако я не понимаю, как заставить его правильно сохранять файлы. Так как в папке Assets / Drill_Words / там есть какой-то файл, но нет скриптового объекта со всей информацией (см. Рис.). Однако в списке DrillWords есть скриптовые объекты, я еще не проверял, есть ли у нихвсе данные , я теряю эти объекты сценариев после остановки воспроизведения?

Есть идеи, что я делаю неправильно, как их сохранить?

С благодарностью - N

1 Ответ

1 голос
/ 28 октября 2019

Вы не можете сохранять объекты сценариев во время выполнения. Вместо этого используйте скрипт редактора.

В противном случае, если вы загружаете «электронную таблицу» во время выполнения как часть приложения / игры, вместо этого используйте JSONUtility для сериализации и десериализации общих [Serializable] классов и структур с [SerializeField] вместо.

...