Unity - Ръководство за управлявани добавки

Обикновено скриптът се съдържа в проект като изходен файл и се компилира от Unity, когато се промени. Въпреки това е възможно също така да компилирате скрипт в библиотека с динамични връзки (dll) с помощта на външен компилатор. След това получената dll може да бъде добавена към проекта и класовете, които съдържа, могат да бъдат прикачени към обекта като нормални скриптове.

Много по-лесно е да работите със скриптове, отколкото с dll. Възможно е обаче да имате достъп до код, предоставен от трета страна под формата на dll. Когато разработвате свой собствен код, можете да използвате компилатор, който не се поддържа от Unity (напр. F#), като компилирате кода в dll и го добавите към проекта на Unity. Освен това може да искате да разпространите своя Unity код без изходен код (за продажба в AssetStore, например), а dll е лесен начин да го направите.

създаване на dll

За да създадете dll, първо се нуждаете от подходящ компилатор. Не всички компилатори, които произвеждат .NET код, са гарантирани, че работят с Unity, така че си струва да тествате компилатора с някакъв наличен код, преди да извършите значителна работа по него. Ако dll не съдържа код, който извиква Unity API, можете просто да го компилирате в dll, като използвате подходящите опции на компилатора. Ако искате да използвате API на Unity, трябва да направите dlls на двигателя на Unity достъпни за компилатора. На Mac те се съдържат в пакета на приложението (можете да видите вътрешната структура на пакета с командата Show Package Contents от контекстното меню - щракнете с десния бутон или щракнете с Ctrl върху приложението Unity):-

Пътят до Unity dll обикновено е такъв

В Windows myfqltys dll могат да бъдат намерени в папки, притежавани от приложението Unity. Пътят обикновено е

Точните опции за компилиране на dll са силно зависими от използвания компилатор.Например, командният ред за компилатора Mono C#mcs на Mac OS може да изглежда така:-

използване на dll

Веднъж компилиран, dll файлът може просто да бъде влачен в проекта Unity като всеки друг актив. Dll активът има триъгълник, който разкрива съдържанието на файла, за да изберете отделен клас в библиотеката. Класовете, които са наследени от MonoBehaviour, могат да бъдат плъзгани върху GameObject като нормални скриптове. Класовете Non-MonoBehaviour могат да се използват директно от други скриптове по нормалния начин.

Разширен dll с класове в него

Инструкции за MonoDevelop и Visual Studio

В този раздел ще научите как да изградите и интегрирате проста dll с помощта на MonoDevelop и Visual Studio и как да настроите сесия за отстраняване на грешки за тази DLL.

Настройка на проекта

Първо отворете MonoDevelop или Visual Studio и създайте нов проект. В MonoDevelop това става чрез отваряне на File > Ново > Решение и след това избиране на C# > библиотека. В Visual Studio трябва да отворите File > Ново > Проектирайте и след това изберете Visual C# > класна библиотека.

След това трябва да попълните информация за новата библиотека:

  • Име е пространството от имена (в този пример използвайте „DLLTest“ като име).
  • Местоположение е основната папка на проекта.
  • Име на решение е папката на проекта (име на решение).

След това трябва да добавите връзки към DLL файловете на Unity. В MonoDevelop трябва да отворите контекстното меню за препратки в браузъра на решения и да изберете Редактиране на препратки. Сега изберете опцията .Net Assembly tab > Файлова система > Избери файл. Във Visual Studio отворете контекстното меню за препратки в Solution Explorer и изберете Добавяне на препратка. След това изберетеПреглед > Преглед > Избери файл.

На този етап ще имате възможност да изберете желания DLL файл. В Mac OSX файлът може да бъде намерен на

За този пример, нека преименуваме класа на "MyUtilities" в браузъра Solution и заменим неговия код със следния:

След като приключите с кода, създайте проекта и генерирайте DLL файл със символи за отстраняване на грешки.

Използване на DLL в Unity

  1. За този пример създайте нов проект в Unity и копирайте изградения файл

/bin/Debug/DLLTest.dll в папката Assets. След това създайте C# скрипт с име „Тест“ в Активи и заменете съдържанието му със следния код:

Когато прикачите този скрипт към обект в сцената и натиснете Play, ще видите изхода от DLL в прозореца на конзолата.

Настройване на сесия за отстраняване на грешки за DLL

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

/bin/Debug/DLLTest.dll.mdb към папката Assets/Plugins. В Visual Studio стартирайте

След това отворете скрипта „Тест“ в MonoDevelop. Уверете се, че дебъгерът на Unity е активиран в менюто Инструменти (Windows) или менюто MonoDevelop-Unity (MacOS). От това меню се нуждаете от следния мениджър на добавки > Инсталиран раздел > Единство > изберете Поддръжка на Mono Soft Debugger за Unity > Активирайте .