官方项目《内容示例》中Common UI部分笔记: 1.1 Activatable Widgets

本文主要面向UMG以及Common UI的初学者

文章目录

  • 效果展示
  • 概要
  • Activate和Deactivate
  • 可见性绑定
  • UI动画
  • 设置Common Activatable Widget的默认焦点

效果展示

在这里插入图片描述

概要

这个例子非常简单,定义了1+3个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 isn't 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(), *StaticEnum<ESlateVisibility>()->GetDisplayValueAsText(ActivatedVisibility).ToString());}if (CommonUI::IsEnhancedInputSupportEnabled() && InputMapping){if (const ULocalPlayer* LocalPlayer = GetOwningLocalPlayer()){if (UEnhancedInputLocalPlayerSubsystem* InputSystem = LocalPlayer->GetSubsystem<UEnhancedInputLocalPlayerSubsystem>()){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://xiahunao.cn/news/1622015.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

win10链接无线打印服务器,win10怎么连接网络打印机 win10添加网络打印机详细教程...

自从有了win10系统&#xff0c;互联网变得越来越方便了&#xff0c;最近非常流行网络打印机&#xff0c;只需要共享IP就可以实现扩地区打印&#xff0c;那么该如何操作呢&#xff1f;首先让我们先添加一个网络打印机&#xff0c;怎么添加&#xff1f;大家只需要看看下方的win10…

计算机重新如何连接网络打印机,电脑怎样连接打印机,小编教你电脑如何连接网络打印机...

打印机是办公室里经常会用到的一种办公设备&#xff0c;由于工作性质的不同&#xff0c;以及其他原因&#xff0c;网络打印机可以实现多台电脑连接&#xff0c;实现资源共享。网络打印机自带ip&#xff0c;只需指定ip就可以快速连接。那电脑如何连接网络打印机&#xff1f;下面…

Linux之iptables防火墙

目录 一.网络安全技术 二.防火墙 2.1.防火墙分类 2.2.iptables工具简述 2.3.iptables基本语法 2.4.控制类型 2.5.查看规则 2.6.添加规则 2.7.黑白名单 2.8.根据规则编号删除 清空 替换规则 2.9.默认策略 2.10.隐藏扩展模块 2.11.显示扩展模块 三.iptables保存规则…

Qt应用开发(基础篇)——日历 QCalendarWidget

一、前言 QCalendarWidget类继承于QWidget&#xff0c;是Qt设计用来让用户更直观的选择日期的窗口部件。 时间微调输入框 QCalendarWidget根据年份和月份初始化&#xff0c;程序员也通过提供公共函数去改变他们&#xff0c;默认日期为当前的系统时间&#xff0c;用户通过鼠标和…

星际争霸之小霸王之小蜜蜂(七)--消失的子弹

目录 前言 一、删除子弹 二、限制子弹数量 三、继续重构代码 总结 前言 昨天我们已经让子弹飞了起来&#xff0c;但是会面临一个和之前小蜜蜂一样的问题&#xff0c;小蜜蜂的行动应该限制在窗口内&#xff0c;那么子弹也是有相同之处&#xff0c;也需要限制一个移动范围&…

《影响力》,到底有多可怕?

通过案例引出主题。介绍《影响力》的六大原理。附录: 本文书籍以及个人视频账号介绍。本文6300字左右&#xff0c;预计阅读时间10分钟。 上周&#xff0c;我到李宁专卖店买一双跑步鞋&#xff0c;挑来挑去看中了一双黑色的鞋&#xff0c;款式不错&#xff0c;穿起来也很舒服。…

谋定政策经信研究扶持-万祥军:对话李玉庭跨界电商重整

谋定政策经信研究扶持-万祥军&#xff1a;对话李玉庭跨界电商重整 中国经济和信息化网 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 经信研究 国研智库 国情讲坛 万赢信采编&#xff1a;“企业抱团集群发展成趋势&#xff0c;扶持政策持续加码。业内有人戏称&#xff0…

临期食品,是否只是个“过期“市场?

如今的年轻人&#xff0c;越来越喜欢在生活上精打细算。 无论是知乎豆瓣&#xff0c;还是微博贴吧&#xff0c;在各类平台论坛之中&#xff0c;都会有着"省钱"相关的话题。如何用更少的钱过上更加精致充实的生活&#xff0c;成为了当代年轻人最受欢迎的生活方式。 在…

跨界巨头谋定现代农业-农民丰收节交易会:全产业链布局

跨界巨头谋定现代农业-农民丰收节交易会&#xff1a;全产业链布局 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 经信研究 国研智库 国情讲坛 哲商对话 万权采编&#xff1a;“既有农业的种植管理技术&#xff0c;又有食品深加工的能力&#xff0c;还有食品和农产品营销…

她在女性大会上请求马云“教育”老公,夫妻俩开店一年销售10个亿

“我是做淘宝的&#xff0c;然后我老公也是做淘宝的。我一年大概做两三个亿的销售额&#xff0c;我老公一年做七八个亿的销售额。我老公比较注重应酬&#xff0c;经常把自己灌醉。我老公非常想要宝宝&#xff0c;但是他每天因为生意&#xff0c;熬夜、应酬、喝醉&#xff0c;我…

深度:蒙牛老年高端产品营收增长9倍,中老年消费品市场趋势不变,创新机会涌现!

疫情仍在肆虐&#xff0c;许多行业和公司遭受重创&#xff0c;面临生死存亡的困境。 在一片悲观之下&#xff0c;中老年消费品市场凸显出顽强的生命力和独特价值&#xff0c;AgeClub在对电商平台数据和行业密切跟踪中发现&#xff1a; 蒙牛2019年“悠瑞”中老年高端系列营收增…

2021年中国奶粉行业发展现状分析,行业集中度不断提升,下沉市场发展空间广阔「图」

一、概述 奶粉是将动物奶除去水分后制成的粉末&#xff0c;它适宜保存。奶粉是以新鲜牛奶或羊奶为原料&#xff0c;用冷冻或加热的方法&#xff0c;除去乳中几乎全部的水分&#xff0c;干燥后添加适量的维生素、矿物质等加工而成的冲调食品。奶粉主要可分为全脂奶粉、脱脂奶粉…

乐高武汉楚河汉街授权专卖店重装焕新开业;玛氏中国“宠享潮生活”共建人宠友好新风尚 | 知消...

百威亚太携高端波本威士忌品牌助阵2021 Whisky L。2021年12月9日至11日&#xff0c;百威亚太携美国波本威士忌野牛仙踪亮相2021 Whisky L。与此同时&#xff0c;出产野牛仙踪威士忌的野牛仙踪蒸馏酒厂的高端线Bond and Royal也空降现场&#xff0c;参与此番共饮盛况。 伊利奶粉…

Drupal 安装语言时报错

中文下载地址: 下载 | Drupal 中文网 进入下载 | Drupal 中文网或者Chinese, Simplified overview | Translations下载语言包&#xff0c;根据你的Drupal版本下载相应的语言包 我选的是9.4.8版本&#xff0c;下载好后放到你的安装包里sites\default\files\translations 有什么…

Drupal安装配置文档(一)

Drupal安装配置文档 前段时间帮公司弄了个内部网站&#xff0c;作为一个内部信息交流平台&#xff0c;发现一个叫Drupal的内容管理系统很适合&#xff0c;于是研究了一番。由于篇幅有限&#xff0c;本文档分为&#xff08;一&#xff09;&#xff08;二&#xff09;两篇&#x…

Excel 2007

Excel 2007 一.数据的呈现与挖据 1. 开始->条件格式下 2.插入->数据透视表, 数据透视表工具->选项,&设计 二.数据的整理与分析 1.数据->分列; 2.数据的合并: 用函数公式(A1&"-"&A2) 3. 选中某个需要排序的cell, 数据->排序 4.数…

【【STM32分析IO该设置什么模式的问题】】

STM32分析IO该设置什么模式的问题 我们分析而言 我们对于PA0 的设计就从此而来 对于边沿触发的选择我们已经有所了解了 我们下拉&#xff0c;但是当我们摁下开关的时候 从0到1 导通了 所以这个是下拉 上升沿触发 而对于KEY0 我们摁下是使得电路从原来悬空高阻态到地就是0 所以…

Linux操作系统--shell编程(运算符)

语法: "$((运算式))" 或 "$[运算式]" 下面我们介绍几种Linux操作系统中的运算符的使用方式: 方式1:这一个使用比较麻烦,不推荐使用 方式2:推荐使用

android 竞品分析工具对比

最近一段时间因为琐事&#xff08;有公有私&#xff09;太多&#xff0c;加上搬家后&#xff0c;家里断网了一周&#xff0c;虽然有很多东西想写&#xff0c;但却迟迟没有动手。好在目前基本事情都搞完&#xff0c;又可以愉快的写东西了&#xff0c;所以&#xff0c;接下来博客…

华为SmartKit工具下载

SmartKit 系统架构 下载链接&#xff1a; 华为 SmartKit 软件下载和补丁升级 - 华为SmartKit 分布式存储&#xff1a;包括软件下载、补丁升级、HedEx文档、配置手册、案例、工具、产品公告、视频、论坛等内容。https://support.huawei.com/enterprise/zh/distributed-storage/…