当前位置: 首页 > news >正文

UE5 C++ 进阶学习 —— 02 - 小案例

配置 GameMode

声明构造函数。

// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"
#include "GameFramework/GameMode.h"
#include "FBGameMode.generated.h"/*** */
UCLASS()
class FLAPPYBIRD_API AFBGameMode : public AGameMode
{GENERATED_BODY()
public:// 声明构造函数AFBGameMode();
};

定义构造函数。

  • 配置 GamePlay 框架的关键类(如 Default Pawn Class)。
  • 注意:DefaultPawnClass 是 AGameMode 的成员变量(UClass* 类型),StaticClass() 是虚幻引擎为每个 UCLASS 生成的静态成员函数。返回该类的 UClass* 类型。
// Fill out your copyright notice in the Description page of Project Settings.#include "FlappyBird/Public/FBGameMode.h"#include "FlappyBird/Public/BirdPawn.h"AFBGameMode::AFBGameMode()
{DefaultPawnClass = ABirdPawn::StaticClass();
}
类型转换函数 Cast
// 格式:Cast<目标类型>(源指针)
目标类型* 结果指针 = Cast<目标类型>(源指针);
  • 如果转换成功(源指针指向的对象确实是目标类型或其派生类),返回有效的目标类型指针。
  • 如果转换失败(类型不匹配),返回 nullptr。

获取玩家控制器

我们获取玩家控制器有两种方式。

在 APawn 类及其子类时:

  • GetController() 是 APawn 类的成员函数,返回 AController* 类型(这个指针指向实际控制该 Pawn 的 Controller 对象)。如果该 APawn 是玩家控制的,那么指向 APlayerController(父类指针指向子类对象)。
// 获取玩家控制器
APlayerController* PC = Cast<APlayerController>(GetController());

在其他类时:

  • GetPlayerController() 是 UGameplayStatics 的静态成员函数。
    • WordContextObject:通常为 this。
    • PlayerIndex:玩家索引。
APlayerController* PC = UGameplayStatics::GetPlayerController(this, 0);

注意:实际上就是蓝图中的 GetPlayerController。

http://www.dtcms.com/a/585469.html

相关文章:

  • Linux的waitpid函数:深入解析与应用实践
  • 历史数据分析——洛阳钼业
  • MySQL EXPLAIN 详解与优化指南
  • ADB 无线调试 APP 完全攻略(2025 最新版)—— 从连接到查看日志,一文搞定!
  • 商家入驻网站建设免费网站怎么做
  • C语言数据结构之堆
  • VIVO算法/大模型面试题及参考答案
  • 临海网站制作好了如何上线网站开发的要求
  • KingbaseES:从MySQL兼容到权限隔离与安全增强的跨越
  • 网站改版竞品分析怎么做可以先做网站再开公司吗
  • Go语言基础:语言特性、语法基础与数据类型
  • 解决 PyQt5 中 sipPyTypeDict() 弃用警告的完整指南
  • 内网门户网站建设要求西安摩高网站建设
  • github访问响应时间过长解决
  • Spring AoP的切点匹配
  • Cookie 与 Session 全解析:从属性原理到核心逻辑,吃透 Web 状态保持
  • STM32HAL库-F1内部Flash读写操作(官网驱动)
  • 辛集建设网站网络营销推广渠道
  • 外国排版网站企业名录2019企业黄页
  • 微信小程序开发实战:图片转 Base64 全解析
  • 秒杀-订单创建消费者CreateOrderConsumer
  • 单层前馈神经网络的万能逼近定理
  • C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown/KeyUp事件之间的区别
  • Windows系统不关闭防火墙,允许某个端口的访问怎么设置?
  • UniApp 多个异步开关控制教程
  • 邯郸哪家公司做企业网站比较专业中国制造网是干什么的
  • 做视频网站把视频放在哪里wordpress建站用什么意思
  • ASP.NET Core Web 应用SQLite数据连接显示(1)
  • 网易门户网站建设网站建设及发布的流程
  • 基于python的jlink单片机自动化批量烧录工具