Unity компиляция под windows

Платформенно зависимая компиляция

Unity включает в себя функцию под названием “Платформенно зависимая компиляция”. Она состоит из некоторых директив препроцессора, которые позволяют вам разделить свои скрипты для компиляции и выполнения части кода исключительно для одной из поддерживаемых платформ.

Кроме того, вы можете запустить этот код в редакторе, таким образом, вы можете скомпилировать код специально для вашего мобильного/консоли и проверить его в редакторе!

Определения платформ

Определения платформ для ваших скриптов, которые Unity поддерживает:

Свойство: Функция:
UNITY_EDITOR Определение для вызова скриптов редактора Unity из вашего игрового кода.
UNITY_EDITOR_WIN Определение платформы для редактора кода на Windows.
UNITY_EDITOR_OSX Определение платформы для редактора кода на Windows.
UNITY_STANDALONE_OSX Определение платформы для компиляции/выполнения кода специально для Mac OS (это включает в себя Universal, PPC и Intel архитектуры).
UNITY_STANDALONE_WIN Используйте, когда вы хотите скомпилировать/выполнить код для приложения на Windows.
UNITY_STANDALONE_LINUX Используйте, когда вы хотите скомпилировать/выполнить код для приложения на Linux.
UNITY_STANDALONE Используйте, когда вы хотите скомпилировать/выполнить код для любой платформы Mac, Windows или Linux.
UNITY_WII Определение платформы для компиляции/выполнения кода для консоли Wii.
UNITY_IOS Определение платформы для компиляции/выполнения кода для iPhone.
UNITY_IPHONE Эквивалент UNITY_WP8 \
UNITY_ANDROID Определение платформы для Android.
UNITY_PS3 Определение платформы для запуска кода на PlayStation 3.
UNITY_PS4 Определение платформы для запуска кода на PlayStation 3.
UNITY_SAMSUNGTV Определение платформы для выполнения кода на Xbox 360.
UNITY_XBOX360 Определение платформы для выполнения кода на Xbox 360.
UNITY_XBOXONE Определение платформы для выполнения кода на Xbox 360.
UNITY_TIZEN Определение платформы для Android.
UNITY_TVOS Определение платформы для Android.
UNITY_WP_8 Определение платформы для Windows Phone 8.
UNITY_WP_8_1 Определение платформы для Windows Phone 8.
UNITY_WSA Определение платформы для Windows Store Apps (дополнительно определяется NETFX_CORE при компиляции C#-файлов в отношении ядра .NET).
UNITY_WSA_8_0 Определение платформы для Windows Phone 8.
UNITY_WSA_8_1 Определение платформы для Windows Phone 8.
UNITY_WSA_10_0 Определение платформы для Windows Store Apps (дополнительно определяется NETFX_CORE при компиляции C#-файлов в отношении ядра .NET).
UNITY_WINRT Эквивалент UNITY_WP8 | UNITY_WSA.
UNITY_WINRT_8_0 Эквивалент UNITY_WP8 | UNITY_WSA_8_0.
UNITY_WINRT_8_1 Эквивалент UNITY_WP8 | UNITY_WSA_8_1. This is also defined when compiling against Universal SDK 8.1.
UNITY_WINRT_10_0 Equivalent to UNITY_WSA_10_0
UNITY_WEBGL Определение платформы для Windows Phone 8.
UNITY_ADS Определение для вызова скриптов редактора Unity из вашего игрового кода.
UNITY_ANALYTICS Определение для вызова скриптов редактора Unity из вашего игрового кода.
UNITY_ASSERTIONS #define directive for assertions control process.

Также вы можете скомпилировать код избирательно, в зависимости от версии движка. В настоящее время поддерживаются: Given a version number X.Y.Z (for example, 2.6.0), Unity exposes three global #define directives in the following formats: UNITY_X, UNITY_X_Y and UNITY_X_Y_Z.

Here is an example of #define directives exposed in Unity 5.0.1:

UNITY_5 Определение платформы для мажор-версии Unity 2.6.
UNITY_5_0 Определение платформы для мажор-версии Unity 3.0.
UNITY_5_0_1 Определение платформы для мажор-версии Unity 3.0.

You can compile code selectively based on the earliest version of Unity required to compile or execute a given portion of code. Given the same version format as above (X.Y.Z), Unity exposes one global #define directive that can be used for this purpose, in the format UNITY_X_Y_OR_NEWER.

The supported #define directives are:

UNITY_5_3_OR_NEWER Определение платформы для мажор-версии Unity 4.0.

You can also compile code selectively depending on the scripting back-end.

ENABLE_MONO Scripting back-end #define directive for Mono.
ENABLE_IL2CPP Scripting back-end #define directive for IL2CPP.
ENABLE_DOTNET Scripting back-end #define directive for .NET.

You can also use the DEVELOPMENT_BUILD #define directive to identify whether your script is running in a player which was built with the “Development Build” option enabled.

Тестирование прекомпилированного кода.

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

Во-первых, выберите платформу, для которой вы хотите проверить ваш код, кликнув на File -> Build Settings . Откроется окно Build Settings для выбора целевой платформы.

Окно Build Settings с выбором WebPlayer’а в качестве целевой платформы.

Выберите платформу, для который вы хотите проверить ваш прекомпилированный код, и нажмите кнопку Switch Editor , тем самым указывая Unity целевую платформу.

Создайте скрипт и скопируйте этот код:-

To test the code, click Play Mode. Confirm that the code works by checking for the relevant message in the Unity console, depending on which platform you selected — for example, if you choose iOS, the message “Iphone” is set to appear in the console.

Учтите, что в C# вы можете использовать атрибут CONDITIONAL , который более прозрачен в использовании и является менее подверженным ошибкам способом вырезания функций, см. http://msdn.microsoft.com/en-us/library/4xssyw96(v=vs.90).aspx.

В дополнение к основной #if директиве компилятора, вы также можете использовать многооборотную проверку в C# и JavaScript:-

Пользовательские определения платформ

Кроме того, можно добавить определённые вами определения к встроенному набору. На панели Other Settings настроек проигрывателя (Player Settings), вы увидите текстовое поле Scripting Define Symbols.

Здесь вы можете указать имена обозначений, которые хотите определить для конкретной платформы, через точку с запятой. Эти обозначения можно затем использовать в качестве условий для директив #if также как встроенные.

Глобальные пользовательские определения

Вы можете определить свои собственные директивы препроцессора, чтобы контролировать, какой код попадет в результат при компиляции. Для этого необходимо добавить текстовый файл с дополнительными директивами в папку “Assets/”. Имя файла зависит от языка, который вы используете, а расширение rsp.:

C# /Assets/smcs.rsp
C# — Скрипты редактора /Assets/gmcs.rsp
UnityScript /Assets/us.rsp

Например, если вы включите одну строку “ -define:UNITY_DEBUG ” в ваш файл smcs.rsp, то определение UNITY_DEBUG будет существовать как глобальное определение для скриптов на C#, за исключением скриптов редактора.

Каждый раз, когда вы вносите изменения в .rsp файлы вам нужно перекомпилировать, чтобы изменения были задействованы. Вы можете сделать это путем обновления или повторного импорта одного из файлов скриптов (.js, .cs или .boo).

NOTE

Если вы хотите изменить только глобальные определения, следует использовать Scripting Define Symbols в Player Settings, потому что это будет охватывать все компиляторы. Если вы выбираете .rsp файлы вместо этого, вы должны будете предоставить один файл для каждого компилятора используемый Unity, и вы не будете знать, когда используется тот или иной компилятор.

The use of .rsp files is described in the ‘Help’ section of the smcs application which is included in the Editor installation folder. You can get more information by running smcs -help .

Note that the .rsp file needs to match the compiler being invoked. For example:

Как правильно скомпилировать ехе файл?

столкнулся с неожиданным для меня препятствием. решил скомпилировать ехе — шник чтобы у товарища на компе протестить. а оно фиг вам говорит. нужно длл юнитиплеера.
Как правильно скомпилировать ехе файл, что бы он не просил юнити плеер или его dll ? версия юнити 2017.2.0.3f .
заранее благодарю

Добавлено через 16 минут
верхней кнопки WebPlayer у меня вообще нет. начинается сразу с виндоус линукс. а компилирует под плеер

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

Добавлено через 43 минуты
но дальше все равно пошли подводные камни. если перенести на другой раздел это все или в папку какую нибудь ,гначинает опять просить плеер. что же не так я делаю ?

Как правильно компилировать .ехе файл, чтобы ресурсы были в отдельном файле?
Visual Basic 2010 Как правильно компилировать .ехе файл, чтобы ресурсы были в отдельном файле, и он.

как скомпилировать .ехе в Netbeans
Суть такова. Когда я работал Code:Blocks .ехе создавался автоматически при нажатии на кнопку.

Как из готового проекта скомпилировать ехе? F9 не помогает
готовый проект кликаю f9 в папке с проектом нахожу приложение,копирую его на рабочий стол,закрываю.

Потерял cpp файл, а ехе-шник остался. Можно как-то декомпилировать файл обратно?
Потерял cpp файл, а ехе-шник остался. Можно как-то декомпилировать файл обратно?

говорит что данная система не подходит для этого приложения. вернее ее разрядность. хотя там сразу и 32 и 64 в настройках билдера

Добавлено через 3 минуты
и еще ,пробовал кто нибудь метода сжатия ? и я не видел в других играх обязательного файла dll Unity плеера. это фишка чисто Юнитеков ?

В 64 разрядной среде 32-битные приложения работать будут. А в 32 битной среде 64 битные приложения работать не смогут.

Поэтому Architecture x86 — будет работать в обоих средах.

Тематические курсы и обучение профессиям онлайн
Профессия Геймдизайнер с 0 до PRO (Skillbox)
Разработчик игр на Unity (Нетология)
Профессия Геймдизайнер (Нетология)
Профессия Тестировщик (Skillbox)

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

Как правильно скомпилировать .java код?
Здравствуйте, мне нужно скомпилировать андроид приложение(из .java класов) но я не знаю как.

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

Как создать ЕХЕ файл в VB?
Необходимо. На VB сделать *.exe файл чтобы он зыпускал приложение написанное на VBA. Сапасибо.

Читайте также:  Какие версии операционной системы windows поддерживают оболочку powershell
Оцените статью