UE4课堂笔记——《UE4C++游戏开发入门教程!》第二期共享变量和方法

《UE4C++游戏开发入门教程!》第二期

UE4C++游戏开发入门教程!(第二期)1

UE4C++游戏开发入门教程!(第二期)2

UE4C++游戏开发入门教程!(第二期)3

UE4C++游戏开发入门教程!(第二期)4

创建c++类并以此创建蓝图类

先创建c++类MyActor_CPP,再创建蓝图类MyActor_CPP_BP,该蓝图父类选择MyActor_CPP
UE4课堂笔记——《UE4C++游戏开发入门教程!》第二期共享变量和方法_第1张图片

c++与蓝图共享变量

在c++的头文件.h中声明变量,利用UPROPERTY宏在引擎界面里标记上显示、可用或禁用等,详细参数参考《Unreal属性宏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;

看一下变量及分类是否已经能看到了
UE4课堂笔记——《UE4C++游戏开发入门教程!》第二期共享变量和方法_第2张图片
UE4课堂笔记——《UE4C++游戏开发入门教程!》第二期共享变量和方法_第3张图片

C++与蓝图共享方法

c++头文件.h的类中,使用UFUNCTION宏声明函数InputText,详细参数参考《UE4入门-常见的宏-UFUNCTION》

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));
}

打开蓝图类,事件编辑器里找到函数,调用执行
UE4课堂笔记——《UE4C++游戏开发入门教程!》第二期共享变量和方法_第4张图片
效果如图
UE4课堂笔记——《UE4C++游戏开发入门教程!》第二期共享变量和方法_第5张图片
如果在.cppBeginPlayTick方法里执行该函数,并将该类拖入引擎的场景中,那么游戏运行开始就会打印一次或多次,而不用到蓝图里写流程

void AMyActor::BeginPlay()
{
	Super::BeginPlay();

	//执行函数打印
	InputText();
}	

注意点

有些人在蓝图中看不到c++共享的变量,可能是眼睛这个位置没有打勾。
UE4课堂笔记——《UE4C++游戏开发入门教程!》第二期共享变量和方法_第6张图片

UE4课堂笔记——《UE4C++游戏开发入门教程!》第二期共享变量和方法_第7张图片

你可能感兴趣的:(Unreal,Engine,游戏开发,游戏,ue4)