本文共 1479 字,大约阅读时间需要 4 分钟。
UE4C++游戏开发入门教程!(第二期)1
UE4C++游戏开发入门教程!(第二期)2
UE4C++游戏开发入门教程!(第二期)3
UE4C++游戏开发入门教程!(第二期)4
先创建c++类MyActor_CPP
,再创建蓝图类MyActor_CPP_BP
,该蓝图父类选择MyActor_CPP
在c++的头文件.h
中声明变量,利用UPROPERTY
宏在引擎界面里标记上显示、可用或禁用等,详细参数参考《》
public: //将下面所有的变量等公开到ue引擎中 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PropertyTest1") float A; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PropertyTest1") float B; //VisibleAnywhere仅在显示区显示,但没有禁止蓝图中事件图表内的修改 UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "PropertyTest2") float C; //BlueprintReadOnly只读,但没有禁止显示区的数值修改 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "PropertyTest2") float D; //全面禁止修改 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "PropertyTest2") float E;
看一下变量及分类是否已经能看到了
c++头文件.h
的类中,使用UFUNCTION
宏声明函数InputText
,详细参数参考《》
public: //声明一个函数并用宏确定是否允许在蓝图中操作 UFUNCTION(BlueprintCallable) void InputText(int32 num);
c++ .cpp
的中定义函数
// 定义函数打印,-1表示不覆盖,即多行,其它数字表示只显示一行,5表示显示5秒void AMyActor::InputText(int32 num){ //GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Blue, TEXT("中文能否正常显示")); //GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, TEXT("chinese can not show normal")); GEngine->AddOnScreenDebugMessage(-1, 5, FColor::White, FString::FromInt(num));}
打开蓝图类,事件编辑器里找到函数,调用执行
效果如图 如果在.cpp
的BeginPlay
或Tick
方法里执行该函数,并将该类拖入引擎的场景中,那么游戏运行开始就会打印一次或多次,而不用到蓝图里写流程 void AMyActor::BeginPlay(){ Super::BeginPlay(); //执行函数打印 InputText();}
有些人在蓝图中看不到c++共享的变量,可能是眼睛这个位置没有打勾。
转载地址:http://zakpi.baihongyu.com/