问题标签 [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.
unreal-engine4 - 如何在 UE4 中正确设置 HUD 小部件
我正在关注基于虚幻引擎的游戏开发的 Udemy 教程。我也在 Udemy 上发布了同样的问题。我会尽力解释我面临的问题。
什么有效
我已经建立了一个
- 游戏模式名为
FPS_GameMode
, - 游戏实例名为
FPS_GameInstance
, - HUD 命名
FPS_HUD
我已将 HUD 设置FPS_GameMode
为FPS_HUD
. 我已FPS_GameMode
在项目设置中指定为 GameMode。
现在我已经创建了 2 个蓝图MainHUD
和UI_DynamicCrosshair
. UI_DynamicCrosshair
包含与角色移动时调整十字准线大小相关的功能。(如果角色移动,它会散开)。我在MainHUD
(UI_DynamicCrosshair
在MainHUD
的视口中使用)中使用了这个十字准线。在我的FPS_Character
蓝图中,我正在创建MainHUD
小部件并将其添加到视口中。
我玩游戏时会出现十字准线小部件,但我的角色移动时它不会更新。
什么不起作用
我需要调用 myUI_DynamicCrosshair
中定义的功能,FPS_Character
以便在角色移动时触发它。为此,我尝试使用MainHUD
参考,因为它可以在FPS_Character
蓝图中访问,假设我可以UI_DynamicCrosshair
通过MainHUD
参考访问。但这不起作用。UI_DynamicCrosshair
无法通过参考MainHUD
访问。
您能否分享一份清单/步骤清单,以便我可以交叉检查我所做的一切并找出我错过了什么?
如果您需要更多详细信息,请告诉我。
unreal-engine4 - UE4 Open Level 节点在熟版本中不起作用
我有一个带有按钮的小部件,它可以打开一个关卡并在单击时播放声音。
该级别在 PIE 中打开得很好,但在熟版本中却没有。
有什么想法吗?
mobile - 关于小部件横向和纵向的问题
我需要使用小部件在横向和纵向图像中使用我的菜单(如果用户将手机转到另一个位置)。
我需要具有不同小部件设计的横向和纵向,还是存在其他更好的解决方案(如响应式 html)?
unreal-engine4 - 绑定不会创建文本
我正在尝试在我的游戏中设置一个高分表,并且根本没有调用获得分数的绑定。它不工作。它使用与名称相同的逻辑,但在文本框中不显示任何内容。将 name 函数绑定到单元格可以很好地打印 hi 分数名称,所以我认为这是 int to text 的问题。
谢谢
unreal-engine4 - 我必须将代码放在哪里才能显示我的游戏的主菜单?
我刚刚开始学习虚幻引擎,并且正在使用 C++ 开发 Pong 游戏。
为了创建我使用 UMG 的菜单并学习如何操作,我观看了 Unreal Engine Online learning 中的 Wiring up the Main Menu教程。
为了显示带有菜单的小部件,讲师创建了一个新的空关卡,并使用关卡蓝图来显示它。但导师说:“传统上,你不会经常使用关卡蓝图”。
那么,如果我们不必使用关卡蓝图,我要怎么做才能显示主菜单呢?
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?也许修复这个错误。
unreal-engine4 - 如何根据文本大小获取文本大小或调整小部件的大小?
我在运行时创建小部件,然后使用 setText 更改其中的文本。问题是包含文本的大小框在我更改文本后没有更新为“内容大小”。是否可以更新它以便它可以根据文本调整大小?
我尝试使用 getTextSize 蓝图节点获取字符串大小,但它仅适用于 drawHud 事件并且很难在 HUD 蓝图之外使用(我相信在 UMG 之后几乎已经过时了?)
蓝图或 C++ 中的任何解决方案都值得赞赏。
listview - 如何在间距区域拖动UMG ListView
我是 UMG 的新手
我在 UnrealEngine4.26 中有一个 UMG ListView
它看起来像这样:
我SetScrollbarVisibility(ESlateVisibility.Collapsed)
用来隐藏滚动条。然后Use Mouse for Touch
在项目设置中设置为 true。
现在当我拖动Image
orTextBlock
或Button
时,我可以滚动 ListView 但是当我拖动间距区域时,什么也没有发生。我能做些什么来解决这个问题?
-------------------更新1------------
我发现我可以在间距区域用鼠标右键拖动,但不能用鼠标左键拖动。当我Use Mouse for Touch
在项目设置中设置时。我以为我可以同时使用鼠标按钮。
那么它有什么问题呢?
c++ - UE4 - 从 UUserWidget 的指针 (UMG) 获取子小部件
我的非 UObject 类拥有一个
UUserWidget* Instance;
那么如何从中获取子小部件(例如:UTextBlock)
简而言之,我想要这样的东西:
Instance->GetChildrenWidgetByName("UTextBlock_Name")
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 将包含:
玩家姓名和图片:哪些将在整个关卡中保持不变 ----- 失效框?
弹药数量:随着玩家开火,数字会不断变化 ----- 固定盒?
连击计数器:随着玩家的攻击也会不断变化-----保持箱?
武器图像和名称:每次玩家更换武器时都会改变 ----- 固定箱?
攻击按钮和进度条(健康)----- 保持器框?