Игры, которые были сделаны с Unity3D для Linux, содержат .dll
файлы в их папке данных GameDataFolder/Managed
.
Который является странным, потому что я думал тот Linux использование .so
файлы вместо .dll
файлы.
(То же верно для приложений Android-Unity3D также.)
Почему?
Игры, о которых Вы говорите, основаны на Платформе.NET и работающий с Моно, который является бесплатной и реализацией с открытым исходным кодом Платформы.NET Microsoft.
, поскольку этими приложениями является базирующаяся.NET, блоки имеют .dll расширение. Таким образом, Вы видите файлы DLL в папках.
Одна программа.NET, разработанная для межплатформенного использования, может работать на Windows, Linux или Mac, с теми же "двоичными файлами" (включая DLLs, которые являются также блоками), которые компилируются в MSIL и нуждаются в.NET, во время выполнения / Моно во время выполнения, чтобы быть выполненными.
Обратите внимание на то, что у Вас также есть некоторые бесплатные приложения (не только игры) на основе Моно Платформы, доступной в репозиториях Ubuntu. Например: Девчонка-сорванец.
.dll
файлы в GameDataFolder/Managed
принадлежите программе собственного кода, которая использует Моно внутренне.
С межплатформенными исполняемыми файлами и совместно использованными библиотеками, которые могут быть выполнены или Общеязыковой средой выполнения.NET или Моно, часто называют .exe
и .dll
суффиксы, соответственно, даже когда они не характерны для Windows. Когда Вы находите a .dll
файл в программе для системы GNU/Linux как Ubuntu, или для любой ОС, но Windows, это обычно почему. Большую часть времени Вы находите a .dll
в системе Ubuntu ответ Golboth объясняет это. Но это не совсем, что продолжается здесь.
Игровой механизм Единицы - который не должен быть перепутан с графическим интерфейсом по умолчанию в большинстве релизов Ubuntu - является популярным собственным межплатформенным игровым механизмом. Этот механизм не работает сверху Платформы.NET или Моно. Вместо этого это встраивает Моно, который должен сказать что Моно выполнения сверху его. Это - то, как разработчики пишут любой код их игровые потребности, который уже не является частью механизма Единицы.
В целом, Моно может использоваться тем же путем.NET Microsoft, CLR обычно используется, для выполнения полной.NET / Моно программ. Но Моно также разработан, чтобы быть легко встраиваемым в приложениях собственного кода, включая позволить тем приложениям быть настроенными. Это - то, что продолжается в ситуации, которую Вы описываете. Файлы, которые Вы видите, не принадлежат программе, которая работает непосредственно сверху Моно или CLR.NET. Вместо этого они принадлежат программе собственного кода, которая встраивает Моно.
Игровой механизм Единицы, который записан главным образом в C++, размещает свой собственный экземпляр Моно, который не использует - и может отличаться от - версия (если таковые имеются) установленный через диспетчер пакетов Вашей системы. Это встроенное Моно время выполнения не может использоваться для выполнения автономной.NET / Моно программ, потому что это не ее цель. Вместо этого часть собственного кода механизма использует его для выполнения кода CIL. (CIL является Общим Промежуточным языком, который является его официальным названием. Это ранее назвали MSIL или промежуточным языком Microsoft, так как Microsoft разработала его первоначально.) Программисты, делающие игры, которые используют механизм Единицы обычно, пишут свой собственный код в C#, хотя некоторые другие языки поддерживаются.
Механизм Единицы встраивает Моно даже в Windows. Для Универсальных игр платформы Windows - и никаких других платформ - это использует Microsoft.NET Framework вместо Моно. Но большинство игр Единицы на большинстве платформ, включая наиболее мобильные устройства и игровые консоли, и включая Ubuntu и Windows, использует Моно. На некоторых платформах IL2CPP доступен как альтернатива Моно, и на некоторых, только IL2CPP поддерживается. Посмотрите ограничения Сценариев для деталей.
.dll
Файлы на UbuntuДве ситуации, где Вы, вероятно, будете видеть a .dll
файл на Ubuntu был описан:
.dll
s Вы будете видеть в системе Ubuntu. Это просто, оказывается, не что .dll
файлы в Вашем GameDataFolder/Managed
папка для.Существует два других довольно общих падежа, где можно видеть a .dll
файл на Ubuntu:
.dll
файлы, а не .exe
файлы, даже когда то, что Вы компилируете, не является библиотекой. Время выполнения.NET Core (названный CoreCLR), а не регулярная Платформа.NET или Моно, петляет..NET Core является продуктом Microsoft, но в отличие от стандартной Платформы.NET.NET Core является межплатформенным с официальной поддержкой для систем GNU/Linux как Ubuntu, и это - бесплатное программное обеспечение с открытым исходным кодом..dll
файл, который Вы видите на Ubuntu, просто будет библиотекой Windows. Можно видеть это, если программа хранится система Ubuntu, но работавший Windows, или если Вы монтируете диск Windows в Ubuntu. Можно также видеть его в связи с программами, которые могут быть выполненными на Ubuntu с помощью Вина, включая программное обеспечение, которое идет с Вином или что Вы устанавливаете автоматически с winetricks
поддерживать другое программное обеспечение Windows.Это не попытка исчерпывающе перечислить все обстоятельства, где можно встретиться с a .dll
на Ubuntu. (Например, это могла также быть библиотека OS/2.) Однако я полагаю, что те четыре случая являются наиболее распространенными.