UE UMG 多级弹出菜单踩坑

ops/2024/12/19 14:14:46/

多级弹出菜单

https://www.bilibili.com/video/BV1ub411J7nA

运行时添加 widget 的方法

create widget 然后 add child 到某个组件,比如 canvas

运行时修改 widget 位置的方法

set widget slot position 用起来没效果

怀疑是因为我没有传入 slot

但是暂时不知道这个 slot 是什么

于是查到

https://forums.unrealengine.com/t/dynamically-set-widget-position-on-canvas-panel/436026

这个 Get widget > As Canvas Slot - set Size / Position 的方法确实可以

在这里插入图片描述

所以这里也是涉及到了 slot,只是有一个函数使得 canvas 作为 slot?

但是一般情况下我怎么获取到一个 widget 然后把他视为 slot 变量?

随便找的 slot 变量也不是这个类型,怪

在这里插入图片描述

添加 UI

对比不同方法,BP 中的设置保持相同,比如我的 anchor 始终没有变过

手动管理位置的方法总是会对不齐位置

在这里插入图片描述

只有让新添加的 widget 是上一级菜单的 child 才能对齐

在这里插入图片描述

其中我的子菜单的 UI 是这样的

在这里插入图片描述

一个 button 只能有一个 child

https://forums.unrealengine.com/t/widget-cant-accept-additional-children-how-to-fix/667786

button 下面加 vertical box 也对不齐

在这里插入图片描述

button slot 也不像 canvas slot

https://forums.unrealengine.com/t/does-slot-as-button-slot-exist-bug/407152/4

最后发现是 button 的这些属性会影响 button slot 的范围

在这里插入图片描述

如果不改的话,就会是上面看到的一条线一样的区域

在这里插入图片描述

改了 0 之后,可动区域才是整个按钮的范围

批量绑定事件

这样子是不行的

在这里插入图片描述

还是老老实实用 widget 作为 child 吧


http://www.ppmy.cn/ops/143199.html

相关文章

【前言】Python实践~数据库管理专栏规划

一、专栏定位与目标 1. 专栏定位 主题:数据库管理工具开发(Python实践)目标读者: 对数据库管理感兴趣的开发者。希望通过Python实现数据库自动化操作的初学者和中级开发者。需要开发数据库管理工具的项目团队。 2. 专栏目标 …

KeepAlive与RouterView缓存

参考 vue动态组件<Component>与<KeepAlive> KeepAlive官网介绍 缓存之keep-alive的理解和应用 Vue3Vite KeepAlive页面缓存问题 vue多级菜单(路由)导致缓存(keep-alive)失效 vue3 router-view keeperalive对于同一路径但路径…

修改uniapp下拉刷新圆圈颜色

直接看图 修改前就是常规的绿色 自定义更符合我们的软件 直接说方法 修改 在App.vue的style样式里添加一行 .uni-page-refresh--refreshing .uni-page-refresh__path{stroke:#FF2442; }我是通过 不执行 uni.stopPullDownRefresh(); 下拉刷新 之后通过F12看出来的 希望可以帮…

一键学懂BurpSuite(8)

声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…

cmake中 macro和函数的区别

语法形式上的区别 macro&#xff08;宏&#xff09;&#xff1a; 定义宏使用macro关键字&#xff0c;语法格式为macro(<macro_name> [arg1 [arg2 [...]]])。例如&#xff1a;macro(my_macro arg1 arg2)message("The first argument is ${arg1}")message("…

娱乐五子棋(附加源码)

一写在开头 上期代码主要实现瀑布流功能&#xff0c;本期就来实现五子棋小游戏&#xff0c;开发久了很多功能都是通过框架组件库来完成&#xff0c;但是如果组件满足不了开发需求&#xff0c;还需要开发人员手动封装组件&#xff0c;专门出这样一期文章&#xff0c;通过原生js实…

rpc设计的再次思考20251215(以xdb为核心构建游戏框架)

1.服务提供者注册的方式 // 表明这是一个服务提供者&#xff0c;ServerType 和 ServerId从application.properties中读取 // 而且只有当当前服务是Game时&#xff0c;才生效。 或者 条件注解??? RpcProvider(typeServerType.Game) public class GameProvider{MsgReceiver…

04_ok_java_websocket_端口转发_将服务器的流端口转到本地

客户端socket package com.example.filedemo.controller; import org.java_websocket.client.WebSocketClient; import org.java_websocket.handshake.ServerHandshake; import java.io.File; import java.io.IOException; import java.net.URI; import java.util.Base64; imp…