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
- За този пример създайте нов проект в 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 > Активирайте .