问题标签 [unreal-umg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2875 浏览

unreal-engine4 - 如何在 UE4 中正确设置 HUD 小部件

我正在关注基于虚幻引擎的游戏开发的 Udemy 教程。我也在 Udemy 上发布了同样的问题。我会尽力解释我面临的问题。

什么有效

我已经建立了一个

  • 游戏模式名为FPS_GameMode,
  • 游戏实例名为FPS_GameInstance,
  • HUD 命名FPS_HUD

我已将 HUD 设置FPS_GameModeFPS_HUD. 我已FPS_GameMode在项目设置中指定为 GameMode。

现在我已经创建了 2 个蓝图MainHUDUI_DynamicCrosshair. UI_DynamicCrosshair包含与角色移动时调整十字准线大小相关的功能。(如果角色移动,它会散开)。我在MainHUDUI_DynamicCrosshairMainHUD的视口中使用)中使用了这个十字准线。在我的FPS_Character蓝图中,我正在创建MainHUD小部件并将其添加到视口中。

我玩游戏时会出现十字准线小部件,但我的角色移动时它不会更新。

什么不起作用

我需要调用 myUI_DynamicCrosshair中定义的功能,FPS_Character以便在角色移动时触发它。为此,我尝试使用MainHUD参考,因为它可以在FPS_Character蓝图中访问,假设我可以UI_DynamicCrosshair通过MainHUD参考访问。但这不起作用。UI_DynamicCrosshair无法通过参考MainHUD访问。

您能否分享一份清单/步骤清单,以便我可以交叉检查我所做的一切并找出我错过了什么?

如果您需要更多详细信息,请告诉我。

0 投票
0 回答
524 浏览

unreal-engine4 - UE4 Open Level 节点在熟版本中不起作用

我有一个带有按钮的小部件,它可以打开一个关卡并在单击时播放声音。

该级别在 PIE 中打开得很好,但在熟版本中却没有。

有什么想法吗?

0 投票
1 回答
27 浏览

mobile - 关于小部件横向和纵向的问题

我需要使用小部件在横向和纵向图像中使用我的菜单(如果用户将手机转到另一个位置)。

我需要具有不同小部件设计的横向和纵向,还是存在其他更好的解决方案(如响应式 html)?

0 投票
1 回答
20 浏览

unreal-engine4 - 绑定不会创建文本

我正在尝试在我的游戏中设置一个高分表,并且根本没有调用获得分数的绑定。它不工作。它使用与名称相同的逻辑,但在文本框中不显示任何内容。将 name 函数绑定到单元格可以很好地打印 hi 分数名称,所以我认为这是 int to text 的问题。

蓝图剪报

谢谢

0 投票
1 回答
78 浏览

unreal-engine4 - 我必须将代码放在哪里才能显示我的游戏的主菜单?

我刚刚开始学习虚幻引擎,并且正在使用 C++ 开发 Pong 游戏。

为了创建我使用 UMG 的菜单并学习如何操作,我观看了 Unreal Engine Online learning 中的 Wiring up the Main Menu教程。

为了显示带有菜单的小部件,讲师创建了一个新的空关卡,并使用关卡蓝图来显示它。但导师说:“传统上,你不会经常使用关卡蓝图”

那么,如果我们不必使用关卡蓝图,我要怎么做才能显示主菜单呢?

0 投票
0 回答
291 浏览

c++ - 发生异常:读取访问冲突。**this** 是 nullptr

我刚刚开始学习使用 Unreal Engine 4.26.2 开发游戏的 C++。

我真的不知道我在做什么。

我创建了一个 UMG.UserWidget 来显示 HUD。然后我创建了一个继承自 UserWidget 的 C++ 类。在那之后,我有了那个UMG.UserWidget的reparent蓝图。我这样做是因为我想从 C++ 代码中访问这个小部件(以更新玩家分数)。

除此之外,我还有一个继承自 AHUD 的 C++ 类。我使用这个类来显示 UMG.UserWidget 与此代码:

自定义 C++ HUD 构造函数

开始播放

我已经用该行尝试了这段代码,PlayerHudWidget = Cast<UPlayerHUDWidget>(Widget);并用同样的错误对其进行了评论。

当我尝试使用此功能更改分数时出现问题:

在这一行if (PlayerHudWidget != nullptr)我得到错误:

发生异常:读取访问冲突。是空指针。

这是UPlayerHUDWidget头文件:

及其实现:

我的问题是我不知道如何UMG.UserWidget从 C++ 更新 HUD,而且我正在尝试它不起作用。

如何 UMG.UserWidget从 C++ 更新 HUD?也许修复这个错误。

0 投票
0 回答
309 浏览

unreal-engine4 - 如何根据文本大小获取文本大小或调整小部件的大小?

我在运行时创建小部件,然后使用 setText 更改其中的文本。问题是包含文本的大小框在我更改文本后没有更新为“内容大小”。是否可以更新它以便它可以根据文本调整大小?

我尝试使用 getTextSize 蓝图节点获取字符串大小,但它仅适用于 drawHud 事件并且很难在 HUD 蓝图之外使用(我相信在 UMG 之后几乎已经过时了?)

蓝图或 C++ 中的任何解决方案都值得赞赏。

0 投票
0 回答
49 浏览

listview - 如何在间距区域拖动UMG ListView

我是 UMG 的新手

我在 UnrealEngine4.26 中有一个 UMG ListView

它看起来像这样:

在此处输入图像描述

SetScrollbarVisibility(ESlateVisibility.Collapsed)用来隐藏滚动条。然后Use Mouse for Touch在项目设置中设置为 true。

现在当我拖动ImageorTextBlockButton时,我可以滚动 ListView 但是当我拖动间距区域时,什么也没有发生。我能做些什么来解决这个问题?

-------------------更新1------------

我发现我可以在间距区域用鼠标右键拖动,但不能用鼠标左键拖动。当我Use Mouse for Touch在项目设置中设置时。我以为我可以同时使用鼠标按钮。

那么它有什么问题呢?

0 投票
1 回答
406 浏览

c++ - UE4 - 从 UUserWidget 的指针 (UMG) 获取子小部件

我的非 UObject 类拥有一个

UUserWidget* Instance;

那么如何从中获取子小部件(例如:UTextBlock)

简而言之,我想要这样的东西: Instance->GetChildrenWidgetByName("UTextBlock_Name")

0 投票
0 回答
138 浏览

unreal-engine4 - Unreal Engine UI - InvalidationBox 和 RetainerBox 在手机游戏中的正确用法是什么?

我已经阅读了一些在线文档和虚幻文档,但仍然不明白什么时候应该使用 Invalidation Box 或 Retainer Box。我读过一些人说要在所有和每个 UI 小部件上使用无效框。网上的其他人说,如果 UI 小部件不断变化(大小、形状、数字),请不要使用它们,而是使用 Retainer Box。

Invalidation Box - 缓存 Slate Tick 数据而不计算每一帧,并且不预先通过、勾选或绘制。Retainer Box - 当 UI 不需要每帧都渲染时,可以控制 UI 渲染的频率和相位。

所以,我的问题是我应该什么时候使用它们。例如,我的手机游戏的 UI Widget 将包含:

玩家姓名和图片:哪些将在整个关卡中保持不变 ----- 失效框?

弹药数量:随着玩家开火,数字会不断变化 ----- 固定盒?

连击计数器:随着玩家的攻击也会不断变化-----保持箱?

武器图像和名称:每次玩家更换武器时都会改变 ----- 固定箱?

攻击按钮和进度条(健康)----- 保持器框?