Unity 6.3
0 онлайн 36 гостей 3 в системе
Вход

Ссылки на сборки

Любая сборка, содержащая типы (например, классы или структуры), которые зависят от типов в другой сборке, должна иметь ссылку на другую сборку. Ссылки между сборками можно управлять, настроив свойства Определение сборки в окне Inspector. Дополнительные сведения см. в разделе Определение сборки Inspector ссылка на окно.

Автоматические ссылки

По умолчанию, предопределенные сборки ссылки на все другие сборки, включая те, которые созданы с помощью определений сборок (1) и предкомпилированные сборки, добавленные в проект в качестве плагинов (2). Пользовательские сборки, созданные с помощью ассета определения сборки, автоматически ссылаются на все предкомпилированные сборки (3):

Ссылки по умолчанию для определений сборок, иллюстрированные направленными соединительными линиями между типами сборок. Два отдельных соединителя происходят от предопределенных сборок; один направляется к пользовательским сборкам, а другой — к предкомпилированным сборкам. Дополнительный соединитель направляется от пользовательских сборок к предкомпилированным сборкам.
Ссылки по умолчанию для определений сборок, иллюстрированные направленными соединительными линиями между типами сборок. Два отдельных соединителя происходят от предопределенных сборок; один направляется к пользовательским сборкам, а другой — к предкомпилированным сборкам. Дополнительный соединитель направляется от пользовательских сборок к предкомпилированным сборкам.

В настройке по умолчанию классы в предопределенных сборках могут использовать все типы, определенные любыми другими сборками в проекте. Аналогичным образом сборки, созданные с помощью ассета определения сборки, могут использовать все типы, определенные в любых предкомпилированных (плагинных) сборках.

Отключить автоматические ссылки

Чтобы предотвратить автоматическую ссылку на пользовательскую сборку предопределенными сборками, снимите флажок Определение сборки Автоссылка имущество в 2000 году Inspector. Это означает, что предопределенные сборки не перекомпилируют при изменении кода в сборке, но также означает, что предопределенные сборки не могут использовать код в этой сборке напрямую.

Чтобы предотвратить автоматическую ссылку на сборку плагина предопределенными или пользовательскими сборками, снимите флажок Auto Referenced в свойстве Плагин Inspector для ассета плагина. Вы все равно можете добавить явную ссылку на плагин из пользовательской сборки: дополнительные сведения см. в Ссылка на предкомпилированную сборку плагина.

Правила и ограничения ссылки

Unity не допускает следующие типы ссылок:

  • Ссылки из пользовательских сборок, созданных с помощью определения сборки, на предопределенные сборки.
  • Явные ссылки из предопределенных сборок. Предопределенные сборки могут использовать код только в сборках с автоматическими ссылками.
  • Циклические ссылки, когда два сборки ссылаются друг на друга. Если вы столкнулись с ошибкой циклической ссылки, вам необходимо перефакторизовать код, чтобы удалить циклическую ссылку или поместить взаимно ссылаемые классы в одном сборке.

Добавление ссылки на другую сборку

Чтобы использовать код из другой сборки, необходимо добавить ссылку на другую сборку в ресурсе Определение сборки.

Чтобы добавить ссылку на другую сборку:

  1. Выберите Определение сборки для сборки, которая требует ссылки для просмотра ее свойств в Inspector.
  2. В разделе Ссылки на определения сборки нажмите кнопку +, чтобы добавить новую ссылку.
  3. Назначьте ресурс Определение сборки в новое созданное пространство в списке справочных материалов.

Включение параметра Использовать GUIDs позволяет изменить имя файла ассета определения сборки, на который сделана ссылка, без обновления ссылок в других определениях сборки для отражения нового имени.

Примечание: GUIDs необходимо сбросить, если файлы метаданных для файлов ассетов удаляются или вы перемещаете файлы за пределы Unity Editor без перемещения файлов метаданных вместе с ними.

Добавление ссылки на предварительно скомпилированную сборку плагина

По умолчанию все пользовательские сборки, созданные с помощью определений сборок, автоматически ссылаются на все предкомпилированные сборки. Это означает, что Unity перекомпилирует все ваши сборки при обновлении любой из предкомпилированных сборок, даже если код в сборке не используется.

Чтобы избежать этих дополнительных затрат, можно переопределить автоматические ссылки и указать ссылки только на те предварительно скомпилированные библиотеки, которые сборка действительно использует:

  1. Выберите Определение сборки для сборки, которая требует ссылки для просмотра ее свойств в Inspector.
  2. В разделе Общие параметры включите параметр Переопределить ссылки, чтобы сделать видимым раздел Ссылки сборки.
  3. В разделе Ссылки сборки нажмите кнопку +, чтобы добавить новую ссылку.
  4. Используйте выпадающий список в пустом слоте для назначения ссылки на предкомпилированную сборку. В списке отображаются все предкомпилированные сборки в проекте для текущей активной платформы в Создание профилей. Установить совместимость платформы для предварительно скомпилированной сборки в Плагин Inspector.
  5. Нажмите Применить.
  6. Повторите для каждой платформы, для которой вы создаете свой проект.

Дополнительные ресурсы