c++ - Widget蓝图中调用c++函数
问题描述
我创建了从下面的 C++ 类继承的小部件。
#pragma once
#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "Widget_Manager.generated.h"
UCLASS()
class CRY_API UWidget_Manager : public UUserWidget
{
GENERATED_BODY()
public:
UPROPERTY(BlueprintReadWrite, Category ="test")
int32 x;
UFUNCTION(BlueprintCallable, Category = "test")
int32 increase_x(int32 i);
};
我想在value1中输出x的值,然后增加,输出到value2。我的问题是蓝图看不到功能increase_x()
。不在元素列表中,不在函数搜索中。
我也试过财产CallInEditor
。如何在小部件中调用此函数?
解决方案
请确保您没有使用热重载(编辑器中的编译 C++ 按钮)。
如果对 C++ 代码(尤其是标头)进行更改,请始终关闭编辑器并从 Visual Studio 重新编译它。热重载无法解析对头文件的更改,这意味着如果您使用热重载,在从 Visual Studio 重新编译之前,蓝图中将无法使用函数和新属性等内容。
最好保持上下文敏感性。
推荐阅读
- azure - Azure BlockBlobStorage 或 General-Purpose v2 是否更适合用于搜索的高级、低延迟、大量小型 json 文件?
- flutter - 一个 RenderFlex 溢出 Flutter
- html - 在一个表中我需要有thead、tbody 和tfooter 吗?
- batch-file - 问:寻找使用批处理文件自动运行 AWS CLi 命令的解决方案
- python - 使用 Slack 中的实时投票更新消息
- r - 按子组为最常见的特征赋值
- r - 如何在执行脚本和绘制GGPLOT2时将SAP应用程序中用户选择的值传递给R脚本
- python - 如何在 Kivy 中加载多个图像而不会耗尽内存
- javascript - Next.js 动态路由:避免为路径参数生成新页面
- emgucv - EMGU - EDSR:无法创建层 DepthToSpace