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不自带这个组件

相关推荐
雨落在了我的手上9 分钟前
初始java(十):类和对象(⼆)
java·开发语言
h_a_o777oah18 分钟前
状态机+划分型 DP :深度解析K-划分问题下 DP 状态的转移逻辑(洛谷P2679 P2331 附C++代码)
c++·算法·动态规划·acm·状态机dp·划分型dp·滚动数组优化
莫雪歌36 分钟前
Java AI 应用开发实践:基于 Spring Boot 实现 Chat、Memory、RAG 与 Tool Calling
java·aigc
SmartBrain1 小时前
AI全栈开发(SDD):慢病管理系统工程级设计
java·大数据·开发语言·人工智能·架构·aigc
梦想CAD控件1 小时前
网页端对DWG图纸进行预览与批注(CAD轻量化)
java·前端·javascript
老毛肚2 小时前
Spring boot 特性和自写Reids组件
java·spring boot·后端
雪度娃娃2 小时前
Asio异步读写——连接的安全回收问题
开发语言·c++·安全·php
极光代码工作室2 小时前
基于SpringBoot的课程管理系统
java·springboot·web开发·后端开发
JustNow_Man2 小时前
【opencode】安装使用daytona沙箱插件
android·java·javascript
不吃土豆的马铃薯2 小时前
Spdlog 进阶:日志基本控制、日志格式控制、异步记录器
linux·服务器·开发语言·前端·c++