Каким образом Unity связан с C# и .NET?
С .NET - никак. Там Mono.
С c# - все сложнее. Вы описываете логику программы на языке C# с использованием библиотек Mono (System) и библиотек Unity (UnityEngine). Далее это все дело компилируется в IL. А дальше - в зависимости от платформы. Может и выполнится сразу (интерпретатор встроен в Unity, скорее всего на основе Mono), а может дальше транслироваться в cpp и компилироваться уже как плюсовый код.
Второй. Похоже что основа приложения на юнити - это запускающий наши скрипты экзешник, и библиотеки, к которым наши скрипты обращаются. К слову, скрипты наши вовсе не скрипты, а довольно уже скомпилированный и упакованный код. А управляет юнити всеми этими "скриптами" с помощью Mono, который тоже входит в билд.
Вот например скрин из типичного билда на винде:На пикче виден фирменный запускатор от юнити, библиотека для его работы в данной системе (для браузеров, например, Unity Player ставится как расширение), и game_Data - директория, которая включает прочие необходимые библиотеки (для физики и UI), ассеты, включая наши скрипты, а также библиотеки Mono.