Unity 6.3
0 онлайн 106 гостей 3 в системе
Вход
UI системы Шаг 227 из 317

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

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

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

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

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

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

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

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

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

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

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