yurickon Posted February 17, 2023 Share Posted February 17, 2023 Всем добрый день! Ну для меня он не очень добрый - я тут что-то напортачил и игра не собирается( А началось всё с того, что я, исследуя движок, захотел использовать файл конфигурации для сохранения данных по типу PlayerPrefs (всё тот же Unity). Это нужно для работы системы диалогов над которой сейчас тружусь. Вот значит я записал вот такую конструкцию: if(Input.IsKeyDown(Input.KEY.F1)) { i_conf = Config.GetInt("conf_save", 100); Log.Message(i_conf); } if(Input.IsKeyDown(Input.KEY.F2)) { Config.SetInt("conf_save", 100);//записываем значение квеста QuestName и присваиваем значение в QuestValue (данные берутся из файла Dialoque) Config.Path = "data/configs/defailt.config"; Config.Save(); } По нажатии клавиши F1 я хотел взять переменную i_conf. При нажатии на F2 переменная должна сохраняться в конфигурационный файл что бы потом можно было её извлечь и использовать в коде. Но теперь понял что это так не работает. Для точности описания следует отметить, что я использовал разные пути. И data/configs/my.config И data/configs/save_dial.config В общем, делал беспечно как-то, хотя внутри понимал, что так нельзя... По итогу после этих манипуляций получаю ошибку сборки. Вижу что в директории data постоянно, при каждом запуске экземпляра игры из редактора, создаётся еще одна папка data с вложенной в неё папкой configs c четырьмя дефолтными файлами. Думаю на это и ругается редактор и выкидывает в консоль следующее сообщение: error MSB3073: выход из команды ""C:\Program Files\dotnet\dotnet.exe" "bin\cspropgen_double_x64d.dll" -p "bin\Siberian_x64d.dll" -data_path ../data/" с кодом -1073741819. Игра тут же вылетает, даже не запустившись. Редактор работает. Если выйти из редактора и попытаться зайти вновь, то этого не произойдёт, пока не удалить эту вновь созданную папку data в корневой data И при запуске экземпляра игры ситуация повторятся. Надеюсь объяснил. Понятия не имею как починить это дело и вернуть всё в рабочее состояние! Прошу уважаемой сообщество помочь в этой проблеме. Спасибо! Link to comment
yurickon Posted February 17, 2023 Author Share Posted February 17, 2023 (edited) Ребята, что-то я поторопился с вопросом. Прошу прощения. Разобрался. Заметил, что meta данные файлов конфигурации которые были в корне data, отличаются по времени создания с самими default файлами. Сделал вывод, что движок их не видит и создаёт еще одну конфигурацию. Две конфигурации для него видимо многовато, происходит конфликт и краш. В общем тупо переименовал в проводнике windows (в проводнике редактора они не отражаются) папку configs на configs_ и... вуаля! Извиняюсь еще раз! Всем удачи) UP. Небольшое дополнение. Если создавать файл конфигурации вот по такому пути: Config.Path = "data/configs/my.config"; то будет происходить то, что описано в посте №0. Но если, например убрать папку data из пути и прописать его так: Config.Path = "configs/my.config"; то всё прекрасно работает. Может, кому пригодится... Edited February 18, 2023 by Yurickon Link to comment
moody_pooch Posted February 20, 2023 Share Posted February 20, 2023 Добрый день! Вижу, что Вы уже сами нашли решение своей проблемы, но могу немного объяснить причины её возникновения. Проблема с путями к файлам возникла из-за того, что Вы используете виртуальные пути, которые уже указывают на расположение файлов относительно -data-path (папки data/). Таким образом, указывая Config.Path = "data/configs/my.config", Вы говорите файловой системе, что в папке data/ находится другая папка data/ с вложенными в нее папкой configs/ и файлом my.config. А в связи с тем, что проект UNIGINE может содержать только одну папку data/, и происходит краш и сбой работы редактора. Подробнее про пути и файловую систему в целом, Вы можете узнать в этой статье. 1 Link to comment
sevas55 Posted April 5 Share Posted April 5 (edited) Как можно отремонтировать проект? У меня возникла такая же проблема. Я менял не через редактор имена миров (*.world) и теперь проект перестал компилится. При этом запуск через батники мир запускает. Лог показывает такое Внутри файла *.csproj я ничего не трогал. Quote I:\Unigine_MY_PROJECTS\LandscapeTest\LandscapeTest.csproj(65,3): error MSB3073: выход из команды ""C:\Program Files\dotnet\dotnet.exe" "bin\cspropgen_x64d.dll" -p "bin\LandscapeTest_x64d.dll" -data_path ../data/" с кодом -532462766. Предупреждений: 0 Ошибок: 1 Прошло времени 00:00:05.62 * The terminal process "C:\Program Files\dotnet\dotnet.exe 'build', 'I:\Unigine_MY_PROJECTS\LandscapeTest/LandscapeTest.csproj', '-c', 'Debug'" terminated with exit code: 1. * Terminal will be reused by tasks, press any key to close it. В Visual Studio Code можно запустить Debug даже с ошибкой и проект компилится, но из редактора UNIGINE нет. Я создал новый проект и посмотрел строку на которую ведет ошибка моего проекта error MSB3073 в рабочем проекте строка 1 в 1 как в моём нерабочем. PS Решил проблему, оказалось я world из проекта с точностью double кинул в проект с float precision, из-за этого в EXEC добавилась строка cspropgen_double_x64dб я удалил её и проект снова работает. <Exec Command=""$(DOTNET_HOST_PATH)" "$(OutputPath)cspropgen_double_x64d.dll" -p "$(OutputPath)$(AssemblyName).dll" -data_path ../data/" Condition="'$(Configuration)'=='Debug' And $(SkipPostBuild)=='false'"/> Edited April 6 by sevas55 Solved 1 Link to comment
Recommended Posts