Восстановление значений инспектора из сборки Unity - PullRequest
1 голос
/ 17 июня 2020

Я совершил глупую ошибку, переместив C# скрипт из проекта и обратно. Это, конечно, очистило все важные значения инспектора до значений по умолчанию из скрипта.

Все, что мне нужно, это снова увидеть эти значения и повторно ввести их. Я попытался декомпилировать файл assembly-csharp.dll из моей последней сборки с помощью dotPeak. Хотя при этом были восстановлены правильные классы и их поля, все поля не определены. Где в сборке Unity хранятся эти значения и можно ли их там декомпилировать?

Заранее спасибо!

1 Ответ

1 голос
/ 18 июня 2020

Насколько мне известно, они хранятся в файле сцены (.unity) или, если это префаб, в файле префаба (.prefab) (и если это префаб в сцене, он сохраняется в файле префаба со списком модификаций в файле сцены). Возможно, вам удастся найти там некоторые значения, но они сериализованы, и вы можете действительно прочитать их только в режиме сериализации активов «Force Text». Также может быть, что они теряют свою ценность, когда вы открываете Unity между перемещением скрипта и его возвращением.

Edit: я пропустил ту часть, которую вы хотели прочитать из сборки. Я не думаю, что это возможно, поскольку они обычно сериализуются (если их нет в Streaming Assets). Поскольку файлы сцены (которые, я думаю, будут содержать данные) также являются просто файлами, а не скриптами, которые компилируются, я думаю, что значения находятся в одном из сериализованных файлов. Также: у вас нет никакого контроля версий? Потому что тогда вы можете откатиться к старой фиксации, содержащей эти данные, или, если это невозможно, посмотрите на указанный файл c.

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