Jump to content

После обновления до 2.21 проект в нерабочем состоянии


photo

Recommended Posts

Posted

Приветствую, уважаемые разработчики! После миграции до последней версии движка, получил уж совсем печальный результат. 

1. Terrain не загрузился полностью. Отсутствуют маски, клаттеры..

image.thumb.png.832f9d618b15cd737d2f0a12f76ba331.png

2. В консоли просто бесконечное число ошибок:

image.thumb.png.2f81d7c527c61360aa2ef3e4c432a38c.png

и. так далее...

3. Не работает MV Studio. Я даже обновил свою старенькую 22 года на 26 год, мало ли думаю, но и там и там одинаковый результат

image.thumb.png.916612c8758ff5320248f3f3ea15442a.png

Компоненты не загружаются:

image.png.a0c6bb5faea06a9c8b4ae5fb9e642079.png

4. У большинства компонентов в редакторе пропали все поля:

image.png.77359ee5fcb2790580e251f0135ddc44.png

 

В общем проект лёг капитально( 

Глядя на всё это, скажите, пожалуйста, мне откатываться на старую версию, или есть всё-таки шанс работать в новой? Эх, а так хотелось бы попробовать новую систему анимации...

Огромное спасибо за любую помощь!

Posted

Здравствуйте!

Да, проблема воспроизводится. Уже изучаем на проекте, который вы присылали ранее (ноябрь 2025г.)

Что касается ошибок, связанных с пропертями - часть кода потребуется мигрировать вручную. Информация об изменениях и рекомендации приведены в гайде: https://developer.unigine.com/en/docs/2.21/upgrade/migration_api?implementationLanguage=cs&precision=d

В частности, необходимо заменить ObjectMeshSkinned на ObjectMeshSkinnedLegacy (это связано с обновленной системой анимации).
Также в AppWorldLogic больше не поддерживаются методы Save/Restore: https://developer.unigine.com/en/docs/2.21/upgrade/migration_api#save_restore

Дополнительно обратите внимание: начиная с версии 2.21 в C#-компонентах допускается только один класс компонента на файл, и он должен быть объявлен с модификатором partial. В связи с этим также потребуется привести код к новым требованиям:
https://developer.unigine.com/en/devlog/20260327-unigine-2.21#no-property-guids-in-c-components

Мы также вынесем эту информацию в гайд по миграции API.

По вопросам, связанным с террейном и другими компонентами, продолжаем разбираться. Постараемся вернуться с обновлением в понедельник.

  • Like 1
Posted

@arizmenda спасибо за быструю реакцию!) Похоже, придётся серьёзно покопаться в коде.. 

Posted

Здравствуйте!

Что касается проблемы с террейном, воспроизвели и локализовали ошибку в миграции. Исправим в предстоящем хотфиксе. 

Проблема в том что при апгрейде выставились некорректные значения Data в параметрах LandscapeLayerMap. Сейчас что-бы вернуть прежний вид можно сделать следующее:

1. Изменить значения параметров Data переключив Mask with Opecity на Only Mask в параметрах .lmap ассета

image.png

2. Нажать Apply (Не нажимайте Reimport что-бы не потерять ручные правки в террейне)

image.png

Приносим извинения за доставленные неудобства

  • Like 1
Posted (edited)

@vvvaseckiy Приветствую! Да, ландшафт починил, круто, спасибо! 

image.thumb.png.d6a5b7a0f2684c6f1b7506f0dc8097d3.png

вот бы еще как-то заставить IDE-шку загружаться, вернее скрипты в ней, что бы начать править код под версию движка 2.21... при запуске студии выходит следующее:

image.png.c37be4a45fb387d2d68d66194e93e8c0.png

окно вывод:

image.thumb.png.1fe374fa479df42afcdffa49bac27263.png

Почему студия не отображает компоненты проекта? Проверено на версиях 22 и 26.

При запуске проекта из редактора в консоли следующие ошибки:

image.png.607a1e431845660360130582979f22c6.png

Что-то не так с файлами скриптов, движок их не находит, хотя они, конечно же на месте. 

Большое спасибо за помощь!)

 

Edited by yurickon
Posted

Присоединюсь к теме.

После миграции у меня в целом всё заработало, но как всегда есть но

Не могу назначить новый скрипт ни на одну ноду - появляется значок стоп. При этом в корне проекта создается файл *.prop с именем созданного скрипта и вот его уже можно назначить на ноду, правда не появляется значок карандаша.

Прилагаю проект без текстур, ландшафта и моделей, в нем проблема воспроизводится.

 

Posted

@sevas55

Спасибо, посмотрим. Как минимум уже видно, что было использовано зарезервированное папки - data/scripts, лучше эту папку переименовать (хотя бы в my_scripts). Но также в проекте есть другие ворнинги, связанные со скриптами, пока неясно откуда они, надо время чтобы разобраться дальше.

@yurickon

А что там в Siberian.csproj на 56 строке? Когда мигрировали ваш проект он прекрасно собирался без этих ошибок (но у нас была версия от ноября прошлого года примерно). Можно создать пустой проект на C# в 2.21 и сравнить оба .csproj, может станет ясно как его подправить. В Visual Studio Code такая же ошибка?

Спасибо.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Posted

@silent 

Спасибо за наводку. Доберусь до дома, проверю, отпишусь по результатам. 

Posted

@sevas55

Проблема оказалась в том, что .csproj не смигрировался (хотя в логе написано что миграция прошла успешно). Поправленный файл в аттаче.

Нужно будет также руками снести сгенерированные .prop файлы, чтобы избежать их двоения в Asset Browser.

Новые .csproj файлы содержат больше информации, в частности добавились следующие параметры:

// condition debug
<Analyzer Include="bin\UnigineCSPropertyBinder_double_x64d.dll"/>
<UnigineSharpLibPath Include="bin\UnigineSharp_double_x64d.dll"/>
  
// condition release
<Analyzer Include="bin\UnigineCSPropertyBinder_double_x64.dll"/>
<UnigineSharpLibPath Include="bin\UnigineSharp_double_x64.dll"/>

Также добавилась информация о версии движка:

<Target Name="UnigineVersionDefines" BeforeTargets="CoreCompile" Condition="&apos;@(UnigineSharpLibPath)&apos; != &apos;&apos; AND Exists(&apos;@(UnigineSharpLibPath)&apos;)">
<GetAssemblyIdentity AssemblyFiles="@(UnigineSharpLibPath)">
	<Output TaskParameter="Assemblies" ItemName="LibAssemblyInfo"/>
</GetAssemblyIdentity>
<PropertyGroup>
	<UnigineLibVersion>%(LibAssemblyInfo.Version)</UnigineLibVersion>
</PropertyGroup>
<PropertyGroup Condition="&apos;$(UnigineLibVersion)&apos; != &apos;&apos;">
	<VersionMajor>$([System.Version]::Parse(&apos;$(UnigineLibVersion)&apos;).Major)</VersionMajor>
	<VersionMinor>$([System.Version]::Parse(&apos;$(UnigineLibVersion)&apos;).Minor)</VersionMinor>
	<VersionPatch>$([System.Version]::Parse(&apos;$(UnigineLibVersion)&apos;).Build)</VersionPatch>
	<VersionRevision>$([System.Version]::Parse(&apos;$(UnigineLibVersion)&apos;).Revision)</VersionRevision>
</PropertyGroup>
<PropertyGroup Condition="&apos;$(UnigineLibVersion)&apos; != &apos;&apos;">
	<DefineConstants>$(DefineConstants);UNIGINE;UNIGINE_VERSION_MAJOR_$(VersionMajor);UNIGINE_VERSION_MINOR_$(VersionMinor);UNIGINE_VERSION_PATCH_$(VersionPatch);UNIGINE_VERSION_REVISION_$(VersionRevision);UNIGINE_VERSION_$(VersionMajor)_$(VersionMinor)_$(VersionPatch)_$(VersionRevision)</DefineConstants>
</PropertyGroup>

Спасибо.

XPLORER_Black_Sea_Science.csproj

  • Like 1

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Posted (edited)

Итак, мои изыскания. 

При попытке открыть файл Siberian.csproj после миграции на 2.21, выдаёт ошибку: image.png.7ecf01b793e51ec03cec22726f01dc99.png

При открытом же этом файле нельзя прочитать xml текст, что бы посмотреть что не так со строчкой 56 image.png.42c0ef58a8af589af1d0f7e9f67942df.png

Новый же проект в версии 2.21 прекрасно работает. 

Прикрепляю 2 файла проектов - 20 и 21 версий.  С большим объемом памяти - 21 версия. Да, пробовал подменить этот файл из рабочей версии 2.20, получил массу ошибок..

Siberian.csproj

Siberian.csproj

Даже не знаю что тут можно сделать..

И еще, при попытке открыть мигрированный файл Siberian.csproj вывалилась такая ошибка: image.png.a3df06f3000487cc659bd2b8c86899f7.png

Edited by yurickon
Posted

Почему-то на полпути миграция прекратилась и не добавила нужных строк в конец .csproj. При обработке списка сырцов произошло что-то странное, даже имя исходника не вписалось:

image.png

Не подскажете как мигрировали проект? Может .csproj был открыт в этот момент в студии или в редакторе? Версия SDK Browser была 2.1.0? Можете повторить, восстановив проект из бэкапа -- будет ли всегда портиться одинаково .csproj или всегда по-разному (или может вообще не будет больше)?

Поправленный .csproj можно найти в аттаче (каким он должен быть после успешной миграции).

Спасибо.

Siberian_new_fixed.csproj

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Posted

Миграция проходила как всегда - всё лишнее закрыто: и редактор и IDE. Только браузер SDK, версия 2.1.0 (build 12610)

Второй раз мигрировал - ситуация повторилась в точности. Ваш аттач сработал, в IDE появились скрипты, ушла ошибка при запуске, но большинство компонентов не показывают поля в редакторе и соответственно куча ошибок

image.thumb.png.98110de5a841a248a3cf2a25998977b6.png

и в свойствах скриптов пустота:

image.png.9fffa79ab2ffb13fd01a73260b11e96c.png

 

Пока как-то так..

 

Posted

Ошибки компиляции компонент нужно чинить руками, мигрировать код по гайду. Александр уже написал это выше: 

 

  • Thanks 1

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Posted

Миграция игры на новую версию движка близится к финалу. Удалил все проперти, заменил их компонентами. Переназначаю их данные полей в редакторе. Некоторые скрипты переписываю с нуля. Например, начало изменения погоды и её тип, теперь будет назначаться не из редактора как до миграции, а генерироваться из скрипта в случайном порядке, или, материалы для света окно домов так же находятся в скрипте через materiall.LoadMaterial(path) и т.п.

Большое спасибо за поддержку команде UNIGINE! 

×
×
  • Create New...