Для начала рассмотрим несколько плюсов их использования.
Плюсы библиотек классов:
1) в удобном использование namespace
2) классы, которые не являются MonoBehaviour cкрываются -> отсутствие свалки в проекте
3) защита от школьников: многих отпугнет само использование библиотек, а если пройтись обфускатором, то читаемость кода значительно упадет.
4) удобная транспортировка кода, например если Вы используете какой-то врапер функций, очень удобно копировать всего лишь один файл и сразу же приступать к работе.
5) хранение внутренних ресурсов (картинок, звуков и тд)
6) да просто красиво и удобно (:
Теперь попробуем создать свою библиотеку и запустить с ней проект.
Как начать использовать .dll в своем проекте
Первое, что мы должны сделать - это создать в любом IDE библиотеку классов. В Microsoft Visual Studio C# Professional это выглядит так File->New->Project
Чтобы работать с UnityEngine ее нужно пролинковать, делается это так - в каждой библиотеке есть закладка References в окне Solution Explorer, кликаем правой, выбираем Add Reference
Файл UnityEngine.dll находится в %ProgramFiles%\Unity\Editor\Data\Managed\
При работе в дальнейшем можно использовать закладку Recent, там хранятся последние использованные библиотеки:
После добавления ссылки на библиотеки, она появится в нужной закладке, и в Вашем проекте можно будет писать так using UnityEngine;
Отключим локальное копирование библиотеки, чтобы не было конфликтов, эти библиотеки уже есть в окружении юнити:
Теперь настроим сохранение сборки в нужное место, т.е в %НашПроектНаЮнити%\Assets\. Для начала зайдем в настройки нашего проекта Project - Project Properties
В закладку Build
Там мы увидим поле Output Path. Этот тот путь по которому будет собираться наша библиотека(-и).
Не забываем, что у любого проекта есть два состояния Debug\Release и пути сборки у них будут разные, т.е если Вы переключите конфигурацию, то заметите - путь изменился.
А так же вам понадобится кнопка Advanced..., находится она снизу в этом же окне
Там можно отключить Debug Info, чтобы при сборке у Вас не было символов отладки, если они необходимы, то нужно в настройках проекта в Build Events -> Post-build прописать генерацию поддерживаемых Mono символов (.mdb) строка будет примерно такая
"c:\Program Files (x86)\Unity\Editor\Data\Mono\lib\mono\2.0\pdb2mdb.exe" $(TargetFileName)
Сам момент написания кода я затрагивать не буду. Предположим, что Вы уже описали свои классы и пришло время попробовать запустить код в
Чтобы собрать все решение нужно нажать кнопку F6, соберутся все библиотеки в солюшене, если они изменялись. Чтобы собрать библиотеку под выделением нажимаем Shift+F6, подробнее можно посмотреть в менюшке Build
Если вы правильно указали путь, то .dll окажется сразу в проекте. Все MonoBehaviour можно просмотреть просто раскрыв библиотеку, у меня получилось вот так:
Пример решения(Solution) из четырех .dll:
Тонкости
Во-первых, версия сборки должна быть жестко .NET Framework 3.5, если меньше, то Вы не сможете пролинковать UnityEngine.dll и UnityEditor.dll, а если больше, то тогда не поддерживает Mono в Unity3d.
Во-вторых, Editor классы можно прятать внутри dll,но в связи с тонкостями сборки готового билда, едитор классы нужно прятать в отдельном от монобех dll, а получившуюся сборку класть обязательно в папку Editor.
В некоторых случаях нужно будет настроить порядок выполнения скриптов, находится это в Edit->Project Settings->Script Execution Order.
Если есть дополнения буду рад.