Resources.load со скриптовым объектом - PullRequest
1 голос
/ 05 апреля 2019

У меня есть объект Scriptable в Unity, который содержит много данных (целых чисел и строк)

Я хотел бы сохранить данные в этом сценарии:

https://imgur.com/a/SQqTCZC

Я пытался:

int cSlot = 0;
StatsPrincess saveP = Resources.Load<StatsPrincess>("ScriptablesObjects/GameSaves/Princess" + cSlot.ToString());

saveP.string1 = mystringtosave1;
saveP.int1 = myinttosave1;

Это оставляет «saveP» в «null»

1 Ответ

1 голос
/ 05 апреля 2019

Resources.Load работает только в том случае, если ресурс находится в папке с именем «Ресурсы» (и у вас может быть несколько папок «Ресурсы»).

Если вы хотите загрузить сстрока "ScriptablesObjects/GameSaves/Princess", тогда путь к файловой системе должен быть "Assets/Resources/ScriptablesObjects/GameSaves/Princess"

. Здесь приведены соответствующие сведения из связанной документации:

Загружает ресурс, сохраненный по пути в папке.Вызванные ресурсы.

Возвращает ресурс по пути, если он может быть найден, в противном случае возвращает ноль.Будет возвращен только объект типа TПуть указывается относительно любой папки с именем Resources в папке Assets вашего проекта.Можно использовать более одной папки ресурсов.Например, проект может иметь папки ресурсов, называемые Активы / Ресурсы и Активы / Оружие / Ресурсы.Имена строк, которые включают в себя активы и ресурсы, не нужны.Например, загрузка GameObject в Assets / Guns / Resources / Shotgun.prefab не использует имена папок.Также, если существует Assets / Resources / Guns / Missiles / PlasmaGun.prefab, он будет загружен с использованием Prefabs / Missiles / PlasmaGun.Если у вас есть несколько папок ресурсов, вы не можете дублировать использование имени ресурса.

Еще один пример папки ресурсов.В Ресурсах есть два файла: fancyA и fancyB.Ресурсы также имеют папку Resources2.Эта папка содержит два файла: fancyA2 и fancyB2.Наконец, у Resources2 есть папка Resources3 с одним файлом, который также называется fancyB.(Это означает, что файл в Resources3 имеет то же имя, что и в ресурсах.) Файлы в ресурсах можно загружать как fancyA и fancyB без необходимости в иерархии папок Assets / Resources.Кроме того, файлы в Resources2 могут быть загружены.Для их загрузки требуется каталог папок, поэтому примером загрузки будет Resources2 / fancyB2.Наконец, загрузка из Resources3 будет представлять собой Resources2 / Resources3 / fancyB.

Примечание. Расширения должны быть опущены.Примечание. Все имена активов и пути в Unity используют прямую косую черту, пути с обратной косой чертой не будут работать.

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