为游戏角色绑定模型
2023年6月11日 2024年1月11日
概览
- | |
---|---|
玩家控制的游戏角色 | Character |
游戏角色控制器 | PlayerController |
关卡设置 | GameModeBase: DefaultPawnClass, PlayerControllerClass |
第三视角 | CameraComponent |
创建Character类和PlayController类
虚幻编辑器
- 创建
Player/STUBaseCharacter
-
ACharacter
-
公有类
-
- 创建
Player/STUPlayerController
-
APlayerController
-
公有类
-
设置头文件搜索路径
-
源文件路径已包含上级文件夹
ShootThemUp: Player/STUBaseCharacter.cpp
-
设置头文件搜索路径之后,可以不指明上级文件夹
ShootThemUp: ShootThemUp.Build.cs
1PublicIncludePaths.AddRange(new string[] { "ShootThemUp/Public/Player" });
设置STUGameModeBase使用STUBaseCharacter和STUPlayController
C++
- | |
---|---|
DefaultPawnClass | 游戏角色类型 |
PlayerControllerClass | 游戏角色控制器类型 |
- 添加默认构造函数声明
ShootThemUp: STUGameModeBase.h
- 设置默认游戏角色类型和游戏角色控制器类型
ShootThemUp: STUGameModeBase.cpp
1#include "Player/STUBaseCharacter.h" 2#include "Player/STUPlayerController.h" 3 4// 以下亦正确 5// #include "STUBaseCharacter.h" 6// #include "STUPlayerController.h" 7 8ASTUGameModeBase::ASTUGameModeBase() 9{ 10 DefaultPawnClass = ASTUBaseCharacter::StaticClass(); 11 PlayerControllerClass = ASTUPlayerController::StaticClass(); 12}
为游戏角色添加第三视角
C++
为STUBaseCharacter添加UCameraComponent类型成员
- 添加CameraComponent类型成员
ShootThemUp: Player/STUBaseCharacter.h
1// 前向声明 2class UCameraComponent; 3 4// protected 5UPROPERTY(VisibleAnywhere, BlueprintReadWrite) 6UCameraComponent *CameraComponent;
- 初始化组件
ShootThemUp: Player/STUBaseCharacter.cpp
1#include "Camera/CameraComponent.h" 2 3// 默认构造函数 4CameraComponent = CreateDefaultSubobject<UCameraComponent>("CameraComponent"); 5CameraComponent->SetupAttachment(GetRootComponent());
- 编译ShootThemUp
设置关卡使用蓝图类
虚幻编辑器
查看STUGameModeBase使用的类型
创建基于STUGameModeBase的蓝图类
-
选中C++ Classes/ShootThemUp/STUGameModeBase右键, 选择Create blueprint class based on STUGameModeBase
-
保存到
Content/
, 命名为BP_STUBaseGameBase
创建基于STUBaseCharacter和STUPlayerController的蓝图类
-
创建
Content/Player
文件夹 -
创建
BP_STUBaseCharacter
和BP_STUPlayerController
, 保存到Content/Player/
设置关卡使用BP_STUGameModeBase, 并设置BP_STUGameModeBase使用BP_STUBaseCharacter和BP_STUPlayerController
为游戏角色绑定模型
虚幻编辑器
BP_STUBaseCharacter
查看组件信息
说明 | |
---|---|
Capsule Component | 根组件,实现碰撞检测 |
Arrow Component | 角色的前进方向 |
Camera Component | 第三视角 |
Mesh | 骨骼网格体(Skeletal Mesh) |
Character Movement | 纯逻辑组件,负责游戏角色运动 |
设置蓝图类编译成功自动保存
为Mesh组件绑定骨骼网格体
-
Mesh
绑定HeroTPP
-
材质自动应用
HeroTPP
若材质显示不正确, 需参照ShooterGame项目的纹理设置做相应调整
-
移动模型到合适位置,旋转模型与前进方向一致
-
实现第三视角
分离Camera Component
和Mesh
组件 -
效果图