DanielDemidko
@DanielDemidko
Программист

Каким образом Unity связан с C# и .NET?

Каким образом Unity связан с C# и .NET?
Я вижу два варианта.
Первый - за работу исполняемого файла отвечает какая то часть Unity. C# код работает как его скрипты, часть Unity вызывает их и интерпретирует внутри себя.
Второй - за работу исполняемого файла отвечает наш собранный C# код, а Unity как бы его библиотека. Примерно так же как Java + Android SDK. Просто метод Main запрятан где то внутри.
Какой вариант ближе к истине?
  • Вопрос задан
  • 3458 просмотров
Решения вопроса 2
GavriKos
@GavriKos Куратор тега Unity
С .NET - никак. Там Mono.
С c# - все сложнее. Вы описываете логику программы на языке C# с использованием библиотек Mono (System) и библиотек Unity (UnityEngine). Далее это все дело компилируется в IL. А дальше - в зависимости от платформы. Может и выполнится сразу (интерпретатор встроен в Unity, скорее всего на основе Mono), а может дальше транслироваться в cpp и компилироваться уже как плюсовый код.
Ответ написан
Комментировать
yarosroman
@yarosroman Куратор тега C#
C# the best
Никакой, все гораздо интереснее, вместо .Net в Unity используется Mono, затем вещь под названием il2cpp переводит IL код в CPP файлы, потом они компилируются в нативные приложения.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ColdSpirit
Второй. Похоже что основа приложения на юнити - это запускающий наши скрипты экзешник, и библиотеки, к которым наши скрипты обращаются. К слову, скрипты наши вовсе не скрипты, а довольно уже скомпилированный и упакованный код. А управляет юнити всеми этими "скриптами" с помощью Mono, который тоже входит в билд.

Вот например скрин из типичного билда на винде:
a3ed6bfdf496d2a505aa89ab7114879a.pngНа пикче виден фирменный запускатор от юнити, библиотека для его работы в данной системе (для браузеров, например, Unity Player ставится как расширение), и game_Data - директория, которая включает прочие необходимые библиотеки (для физики и UI), ассеты, включая наши скрипты, а также библиотеки Mono.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы