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

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

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

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

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

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

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

先创建c++类MyActor_CPP,再创建蓝图类MyActor_CPP_BP,该蓝图父类选择MyActor_CPP
在这里插入图片描述

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;

看一下变量及分类是否已经能看到了
在这里插入图片描述
在这里插入图片描述

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

打开蓝图类,事件编辑器里找到函数,调用执行
在这里插入图片描述
效果如图
在这里插入图片描述
如果在.cppBeginPlayTick方法里执行该函数,并将该类拖入引擎的场景中,那么游戏运行开始就会打印一次或多次,而不用到蓝图里写流程

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

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

注意点

有些人在蓝图中看不到c++共享的变量,可能是眼睛这个位置没有打勾。
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值