UE5 c++ 常用方法

文章目录

创建一个组件

cpp 复制代码
capsule = CreateDefaultSubobject<UCapsuleComponent>(TEXT("Capsule"));

设置一个组件为根物体

cpp 复制代码
SetRootComponent(capsule);//参数,组件的指针

将一个组件设置为另一个组件的子物体

cpp 复制代码
birdMesh->SetupAttachment(GetRootComponent());//参数1 父组件的指针,参数2 父组件的插槽名,默认值为没有插槽

绑定一个按键

首先在项目设置/引擎/输入/轴输入 里添加一个输入

然后需要创建一个pawn类,这样才会有绑定输入的函数

创建一个和输入匹配的函数

cpp 复制代码
void ABird::MoveForward(float Value)//普通方法即可,不需要标记为UFUNCTION
{
	UE_LOG(LogTemp,Warning,TEXT("Value:%f"),Value);
}
// Called to bind functionality to input
void ABird::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)//pawn类自带的可以绑定输入的函数
{
	Super::SetupPlayerInputComponent(PlayerInputComponent);
	PlayerInputComponent ->BindAxis("MoveForward", this, &ABird::MoveForward);//绑定输入
}

玩家移动

//配合上方的输入方法

cpp 复制代码
void ABird::MoveForward(float Value)
{
	if ((Controller != nullptr)&&(Value!= 0.f) )//Controller 由 pawn提供
	{
		FVector Forward = GetActorForwardVector();
		AddMovementInput(Forward,Value);//pawn提供
	}
}

此外,还要求Pawn添加一个movementInput组件,pawn不自带这个组件

相关推荐
用户298698530141 小时前
Java 实现 Word 文档加密与权限解除
java·后端
用户805533698032 小时前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
Yeats_Liao2 小时前
14:Servlet中的页面跳转-Java Web
java·后端·架构
未秃头的程序猿2 小时前
告别"if-else地狱"!Java 21模式匹配,代码优雅了10倍
java·后端·面试
鹤望兰6752 小时前
字节跳动国际支付-后端开发-三面面经
java
Flittly2 小时前
【AgentScope Java新手村系列】(14)人机交互
java·spring boot·spring
RainCity3 小时前
Java Swing 自定义组件库分享(十二)
java·笔记·后端
BadBadBad__AK14 小时前
线段树维护区间 k 次方和
c++·数学·算法·stl
吃饱了得干活18 小时前
Spring Cloud Gateway 微服务网关:路由、断言、过滤器
java·spring cloud
lwx5728020 小时前
探秘InnoDB:搞懂它的内存、线程、磁盘与日志刷盘策略
java·后端