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

RPG2.设置角色摄像机

为了能在debug中方便输出一些打印信息,创建一个空白的c++类文件,我是用的是RIDER,直接在public内进行类创建即可。

1.创建debugHelper

2.在debughelper内创建一个命名空间namespace

namespace Debug
{static void Print(const FString& Msg, const FColor& Color = FColor::MakeRandomColor(), int32 InKey = -1){if (GEngine){GEngine->AddOnScreenDebugMessage(InKey, 5.f, Color, Msg);UE_LOG(LogTemp, Warning, TEXT("%s"), *Msg);}}
}

3.在玩家类里重写beginplay,在beginplay内进行debughelper的函数使用

4.运行游戏,打开日志

出现logtemp,说明debughelper使用成功。可以使用debughelper用以测试。

5.创建角色摄像机

摄像机

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera", meta = (AllowPrivateAccess = "true"))UCameraComponent* FollowCamera;

弹簧臂

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera", meta = (AllowPrivateAccess = "true"))USpringArmComponent* CameraBoom;

接着在玩家角色内创建构造函数,在构造函数内实现创建组件


#include "Character/XMBCharacter.h"
#include "Components/CapsuleComponent.h"
#include "GameFramework/SpringArmComponent.h"
#include "Camera/CameraComponent.h"
#include "GameFramework/CharacterMovementComponent.h"#include "XMBDebugHelper.h"AXMBCharacter::AXMBCharacter()
{GetCapsuleComponent()->InitCapsuleSize(42.f, 96.f);bUseControllerRotationPitch = false;bUseControllerRotationYaw = false;bUseControllerRotationRoll = false;CameraBoom = CreateDefaultSubobject<USpringArmComponent>(TEXT("CameraBoom"));CameraBoom->SetupAttachment(GetRootComponent());CameraBoom->TargetArmLength = 300.0f;CameraBoom->SocketOffset = FVector(0.0f, 55.0f, 60.0f);CameraBoom->bUsePawnControlRotation = true;FollowCamera = CreateDefaultSubobject<UCameraComponent>(TEXT("FollowCamera"));FollowCamera->SetupAttachment(CameraBoom, USpringArmComponent::SocketName);FollowCamera->bUsePawnControlRotation = false;GetCharacterMovement()->bOrientRotationToMovement = true;GetCharacterMovement()->RotationRate = FRotator(0.0f, 550.0f, 0.0f);GetCharacterMovement()->MaxWalkSpeed = 400.f;GetCharacterMovement()->BrakingDecelerationWalking = 2000.f;}

6.打开项目,见此则成功

7.设置骨骼

相关文章:

  • Android 系统发展史
  • 写一个 Java 程序,用于将字符串中的指定子串替换为另一个子串
  • 天猫店铺代运营公司推荐与服务内容解析
  • yum 安装 ncurses-devel 报错 baseurl 的解决方法
  • 解读JetBrains ToolBox以及Windows环境AppData的那点事
  • Markdown转WPS office工具pandoc实践笔记
  • 《P3143 [USACO16OPEN] Diamond Collector S》
  • RVO2(C#版)源码分析
  • 文章分享《Nature Communications》|ATAC-seq开启新视角:探索Shox2基因沙漠的神秘功能
  • Java基础学习内容大纲
  • g4f升级到0.5.2.0版本了,但是有些机器无法运行,只能降级到0.5.1.2版本
  • Springboot使用登录拦截器LoginInteceptor来做登录认证
  • Python类的力量:第一篇:数据组织革命——用类替代“临时数据结构”
  • 6.3 数据分析与决策支持:数据洞察生成与决策辅助系统
  • EPSG的作用
  • 【LaTex】3.8流程图绘制
  • 水利三维可视化平台怎么做?快速上手的3步指南
  • AI日报 - 2025年04月30日
  • 【C++游戏引擎开发】第29篇:物理引擎(Bullet)—刚体动力学系统
  • C++:Lambda表达式
  • 4月译著联合书单|心爱之物:热爱如何联结并塑造我们
  • 费高云调研党的建设工作:营造风清气正劲足的政治生态
  • 新经济与法|如何治理网购刷单与控评?数据合规管理是关键
  • 人社部:将会同更多部门分行业、分领域制定专项培训计划
  • 经济日报:多平台告别“仅退款”,规则调整有何影响
  • 银川市长信箱被指“已读乱回”,官方通报:对相关责任人问责处理