


我在UE的actor中加入了一个Widget,作为屏幕上的用户控件,希望在点击该用户控件的时候在该actor中执行蓝图节点,我该怎么做,现在也打印不出来。



下午好🌅🌅🌅
本答案参考通义千问
在 Unreal Engine 中,如果你在一个 Actor 中添加了一个 UserWidget(用户控件),并希望在点击该 UserWidget 时触发该 Actor 的蓝图节点,你需要进行以下几个关键步骤来实现这个功能。以下是详细的解决方案:
确保 UserWidget 正确绑定到 Actor
Create Widget 节点创建一个 UserWidget,然后通过 Add to Viewport 显示出来。为 UserWidget 添加点击事件监听器
将 UserWidget 的引用传递给 Actor
Get UserWidget 或 Create Widget 后,使用 Set Variable 存储引用。在 UserWidget 的 OnClicked 事件中调用 Actor 的函数
Get Owner 或 Get World 获取 Actor。MyFunction)。在 Actor 的蓝图中实现自定义函数
MyFunction)。MyWidget)。Create Widget 创建实例,并通过 Add to Viewport 显示。MyWidget 设置为变量。MyFunction 并实现逻辑。PrintMessage()。"UserWidget was clicked!"。PrintMessage() 函数。FOnClicked 或 Slate 的事件系统。CreateWidget 方法生成的。OnClicked 事件。Get Owner 找到对应的 Actor。PrintMessage)。| 问题 | 解决方法 |
|------|----------|
| 用户控件未响应点击 | 确保 Hit Test Visibility 设置为 HitTestVisible |
| 无法获取 Owner | 确保 UserWidget 是由 Actor 创建的 |
| 函数未被调用 | 检查是否正确地进行了 Cast To 和函数调用 |
如果你能提供具体的蓝图截图或部分代码片段,我可以进一步帮你调试和定位问题。