网站 备案 注销厦门网站关键词优化
网站 备案 注销,厦门网站关键词优化,django 显示wordpress,陕西住房和城乡建设厅网站电话本文主要面向UMG以及Common UI的初学者 文章目录 效果展示概要Activate和Deactivate可见性绑定UI动画设置Common Activatable Widget的默认焦点 效果展示 概要
这个例子非常简单#xff0c;定义了13个Common Activatable Widget CommonUI_ActivatableWidgets相当于一个容器包… 本文主要面向UMG以及Common UI的初学者 文章目录 效果展示概要Activate和Deactivate可见性绑定UI动画设置Common Activatable Widget的默认焦点 效果展示 概要
这个例子非常简单定义了13个Common Activatable Widget CommonUI_ActivatableWidgets相当于一个容器包含了其它3个Common Activatable Widget ,CommonUI_ActivatableWidgets里没有什么逻辑窗口弹出/切换的逻辑在CommonUI_BaseLayer里CommonUI_BaseLayer通过变量引用了另外两个Common Activatable Widget Activate和Deactivate Activate Widget都干了些什么
void UCommonActivatableWidget::ActivateWidget()
{if (!bIsActive){InternalProcessActivation();}
}void UCommonActivatableWidget::InternalProcessActivation()
{UE_LOG(LogCommonUI, Verbose, TEXT([%s] - Activated), *GetName());bIsActive true;NativeOnActivated();
}void UCommonActivatableWidget::NativeOnActivated()
{if (ensureMsgf(bIsActive, TEXT([%s] has called NativeOnActivated, but isnt actually activated! Never call this directly - call ActivateWidget()))){if (bSetVisibilityOnActivated){SetVisibility(ActivatedVisibility);UE_LOG(LogCommonUI, Verbose, TEXT([%s] set visibility to [%s] on activation), *GetName(), *StaticEnumESlateVisibility()-GetDisplayValueAsText(ActivatedVisibility).ToString());}if (CommonUI::IsEnhancedInputSupportEnabled() InputMapping){if (const ULocalPlayer* LocalPlayer GetOwningLocalPlayer()){if (UEnhancedInputLocalPlayerSubsystem* InputSystem LocalPlayer-GetSubsystemUEnhancedInputLocalPlayerSubsystem()){InputSystem-AddMappingContext(InputMapping, InputMappingPriority);}}}BP_OnActivated();OnActivated().Broadcast();BP_OnWidgetActivated.Broadcast();}
}UPROPERTY(EditAnywhere, Category Activation, meta (InlineEditConditionToggle ActivatedVisibility))bool bSetVisibilityOnActivated false;
在每个Common Activatable Widget 可以通过Activated Visibility以及Dezctivated Visibility来定义该Common Activatable Widget 被激活/取消激活时的可见性行为 可见性绑定 /*** Visibilities to use for when bound widgets in BindVisibilityToActivation are activated.** param OnActivatedVisibility - Visibility for when bound widgets are active* param OnDeactivatedVisibility - Visibility for when bound widgets are not active, not used if this widget has activation / deactivation visibilities* param bInAllActive - True if we should switch to activated visibility only when all bound widgets are active*/void UCommonActivatableWidget::SetBindVisibilities(ESlateVisibility OnActivatedVisibility, ESlateVisibility OnDeactivatedVisibility, bool bInAllActive)
{ActivatedBindVisibility OnActivatedVisibility;DeactivatedBindVisibility OnDeactivatedVisibility;bAllActive bInAllActive;
}/*** Bind our visibility to the activation of another widget, useful for making mouse collisions behave similiar to console navigation w.r.t activation* Will immediately update visibility based on the bound widget activation visibilites set by SetBindVisibilities.** param ActivatableWidget - The widget whose activation / deactivation will modify our visibility */void UCommonActivatableWidget::BindVisibilityToActivation(UCommonActivatableWidget* ActivatableWidget)
{if (ActivatableWidget !VisibilityBoundWidgets.Contains(ActivatableWidget)){VisibilityBoundWidgets.Add(ActivatableWidget);ActivatableWidget-OnActivated().AddUObject(this, UCommonActivatableWidget::HandleVisibilityBoundWidgetActivations);ActivatableWidget-OnDeactivated().AddUObject(this, UCommonActivatableWidget::HandleVisibilityBoundWidgetActivations);HandleVisibilityBoundWidgetActivations();}
}
UI动画 动画播放及用动画触发UI切换 设置Common Activatable Widget的默认焦点
覆盖BP_FetDesiredFocusTarget
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/86375.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!