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

Подробности осуществления связывающей системы

Ниже приводится объяснение того, как работает система привязки UI Toolkit на уровне реализации.

Создание обязательств

Когда вы вызываете метод Bind(), он синхронизирует и отслеживает первое значение асинхронно. Это означает, что свойство value полей не может быть обновлено немедленно. Это позволяет вам настроить привязку для иерархий, которые еще не добавлены ни в одну из UI.

Обнаружение изменений

Система привязки опирается на серийные данные объектов Unity для реализации обнаружения изменений.

После создания привязки между SerializedObject и одним или несколькими элементами, система проверяет этот объект на изменения через регулярные промежутки времени, но не каждый кадр, в двух шагах:

  1. Система сериализирует и опрашивает SerializedObject в собственном коде, чтобы обнаружить любые изменения в сериализированных байтах. Если изменений нет, она останавливается.
  2. При изменениях система сравнивает свойство и отображаемое значение на связанном элементе. При необходимости система обновляет отображаемое значение. Это делается для каждой конкретной привязки свойства к элементу для данного объекта.

Операция дросселирования

Некоторые операции привязки могут быть слишком длинными, чтобы обрабатываться в одном кадре. Если операции привязки обрабатываются в одном кадре, UI может перестать отвечать. Чтобы предотвратить это, эти операции привязки могут происходить в нескольких кадрах. Например, может потребоваться несколько обновлений для обнаружения изменений, в зависимости от количества запрошенных объектов.

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