В качестве IDE здесь используется JetBrains Rider. Создаем c-sharp проект ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить….png) Выбираем из списка «.NET / Core» опцию «Class Library» (На левой стороне окошка). Не путать со списком .NET Framework. Это предыдущая версия .NET. Оставляем настройки по умолчанию, ничего не меняем. Имя проекта на свой вкус. ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-1](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-1.png) Открываем свойства проекта. ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-2](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-2.png) Нажимаем на троеточие. ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-3](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-3.png) Unity поддерживает версию .NET Standard 2.1, начиная с версии 2021.3. Соответственно, выбираем netstandart2.1. ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-4](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-4.png) Должна быть вот такая картина. ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-5](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-5.png) Если не поменять Language Version, то будут ошибки ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-6](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-6.png) Как избавиться от ошибок Первый вариант. Просто меняем там же версию языка на 10. Ошибки должны пропасть. ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-7](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-7.png) Второй вариант. В Rider есть баг, из-за которого выбор версии языка недоступно. (Поле неактивно) ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-8](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-8.png) В таком случае добавляем в xml-файл Название_вашего_проекта.csproj1 строку <LangVersion>10</LangVersion> Открываем csproj1 через контекстное меню или выделяем проект и нажимаем комбинацию ⌘ + ↓ ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-9](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-9.png) Добавляем строку <LangVersion>10</LangVersion> ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-10](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-10.png) Далее, перезагружаем проект. (На всякий случай) ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-11](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-11.png) Ошибки должны пропасть. ## Теперь нам нужно настроить конфигурацию собирания (сборки) библиотеки в DLL для Unity. Открываем ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-12](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-12.png) Далее ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-13](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-13.png) Выбираем в Target framework опцию netstandart2.1. Выбираем в Target Location путь до [[Папка Plugins в Unity-проекте |Plugins]] в вашем Unity проекте. Создайте в любом месте папку Plugins внутри Assets и укажите путь до нее. Больше ничего не меняем в данном окошке. ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-14](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-14.png) Единственное, если хотите, чтобы данная конфигурация была сохранена в проекте, а не оставалась в Rider, то поставьте галку. Путь оставьте по умолчанию. ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-15](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-15.png) Далее нажимаем Run. Спустя несколько секунд в папке Plugins должен появиться DLL с его доп. файлами. ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-16](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-16.png) ### Важное замечание! Будьте внимательны! Если вы в конфигурации сборки случайно вместо netstandart2.1 поставите .net7.0, то Unity все спокойно скомпилирует в PlayMode-режиме (редакторе), и даже не будет выдавать ошибок в консоль. Однако, при сборке под определенную платформу (iOS, Android и т.д) будет абстрактная ошибка, которая не даст вам намека на неправильную настройку конфигурации билда. Вы потратите много времени на поиск проблемы. ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-17](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-17.png) ## Проверяем, подключилась ли DLL в Unity Важно, чтобы Unity был запущен, перед тем как вы будете писать код в Rider. Иначе, DLL не будет добавлена в кеш Unity-проекта. Открываем код из Unity-проекта и пробуем в этом коде использовать классы из библиотеки. ![Как создать свою библиотеку на чистом C Sharp, собрать в DLL и добавить…-18](Как%20создать%20свою%20библиотеку%20на%20чистом%20C%20Sharp,%20собрать%20в%20DLL%20и%20добавить…-18.png) Подключение DLL завершено.