Переиспользование компонентов

Varwin SDK использует .admdef-файлы при создании и сборки объектов. Поэтому, любые дополнительные скрипты на объекте (помимо добавленных автоматически) при билде объекта будут проигнорированы.

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

Предупреждение

После изменения библиотеки необходимо перебилдить все объекты, использующие данную библиотеку.

Данный урок пошагово рассказывает о процессе создания переиспользуемых компонентов.

Шаг 1. Создать директорию, в которой будут находиться классы библиотеки.

../../_images/image_020.png

Шаг 2. Внутри директории создать .asmdef-файл. Его имя должно совпадать с именем namespace, в котором находятся необходимые классы.

../../_images/image_162.png

В разделе Assembly Definition References добавить ссылку на библиотеку ядра - VarwinCore.

../../_images/image_250.png

Шаг 3. Добавить в директорию необходимые классы. Они все должны находиться в одном namespace с уникальным именем, обозначающим библиотеку.

../../_images/image_331.png
 using Varwin;
 using UnityEngine;
 using Varwin.Public;

 namespace Switch.v1;
 {
    [RequireComponent(typeof(Rigidbody))]
    [RequireComponent(typeof(BoxCollider))]
    [RequireComponent(typeof(Animator))]
    public class SwitchBehaviour : MonoBehaviour, IUseStartAware
    {
        public bool ChangeStateOnAnimation = false;
        private Animator _animator;
        private bool _state = false;
    }
}

Шаг 4. В .asmdef-файле объекта, который должен ссылаться на созданную библиотеку, в разделе Assembly Definition References необходимо добавить ссылку на эту библиотеку.

../../_images/image_421.png

Шаг 5. Теперь все классы из библиотеки можно использовать в объекте, который ссылается на нее. Таких объектов может быть сколько угодно, и во всех можно будет использовать общий код библиотеки.

../../_images/image_519.png