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

CustomBinding

класс в UnityEngine.UIElements

Наследуется от:UIElements.Binding

Выполнено в:UnityEngine.UIElementsModule

Описание

Base class for general purpose binding extensibility.

В следующем примере создается пользовательская привязка, которая отображает текущее время. Вы можете привязать ее к текстовому полю метки, чтобы создать часы.

using System;
using Unity.Properties;
using UnityEngine.UIElements;

[UxmlObject] public partial class CurrentTimeBinding : CustomBinding { [UxmlAttribute] public string timeFormat = "HH:mm:ss";

public CurrentTimeBinding() { updateTrigger = BindingUpdateTrigger.EveryUpdate; }

protected override BindingResult Update(in BindingContext context) { var timeNow = DateTime.Now.ToString(timeFormat); var element = context.targetElement; if (ConverterGroups.TrySetValueGlobal(ref element, context.bindingId, timeNow, out var errorCode)) return new BindingResult(BindingStatus.Success);

// Error handling var bindingTypename = TypeUtility.GetTypeDisplayName(typeof(CurrentTimeBinding)); var bindingId = $"{TypeUtility.GetTypeDisplayName(element.GetType())}.{context.bindingId}";

return errorCode switch { VisitReturnCode.InvalidPath => new BindingResult(BindingStatus.Failure, $"{bindingTypename}: Binding id `{bindingId}` is either invalid or contains a `null` value."), VisitReturnCode.InvalidCast => new BindingResult(BindingStatus.Failure, $"{bindingTypename}: Invalid conversion from `string` for binding id `{bindingId}`"), VisitReturnCode.AccessViolation => new BindingResult(BindingStatus.Failure, $"{bindingTypename}: Trying set value for binding id `{bindingId}`, but it is read-only."), _ => throw new ArgumentOutOfRangeException() }; } }

Открытые методы

Метод Описание
UpdateВызывается, когда система привязки обновляет привязку.
Унаследованные члены 3

Свойства

СвойствоОписание
isDirtyЕсли установлено значение true, экземпляр привязки обновляется во время следующего цикла обновления. Если установлено значение false, экземпляр привязки обновляется только при обнаружении изменения.
updateTriggerЕсли установлено значение BindingUpdateTrigger.EveryUpdate, экземпляр привязки обновляется при каждом обновлении, независимо от версии источника данных.

Открытые методы

МетодОписание
MarkDirtyУведомляет систему привязки об обработке этой привязки.
OnActivatedВызывается, когда привязка становится активной для конкретного VisualElement.
OnDataSourceChangedВызывается при изменении разрешенного источника данных привязки.
OnDeactivatedВызывается, когда привязка больше не активна для конкретного VisualElement.

Статические методы

МетодОписание
GetGlobalLogLevelПолучает глобальный уровень журнала для всех сбоев привязки.
GetPanelLogLevelПолучает уровень журнала для сбоев привязки на панели.
ResetPanelLogLevelСброс уровня журнала для сбоев привязки на панели для использования глобального параметра.
SetGlobalLogLevelЗадает уровень журнала для всех сбоев привязки.
SetPanelLogLevelЗадает уровень журнала для сбоев привязки на панели.