ARPG----C++学习记录03 Section7位置,偏移,函数

Pawn

新建一个Pawn的c++类Bird,并且新建一个蓝图

添加一个Capsule(胶囊)

不知道要加啥头文件,去网站找https://docs.unrealengine.com/5.3/en-US/API/Runtime/Engine/Components/UCapsuleComponent/SetCapsuleSize/

包含文件名字的头文件必须放在最后

//文件

UPROPERTY(VisibleAnywhere)

UCapsuleComponent* Capsule;

//构造函数

Capsule = CreateDefaultSubobject<UCapsuleComponent>(TEXT("Capsule"));

SetRootComponent(Capsule);

不能让两个头文件互相引用,会产生错误,但是可以在对方的CPP里引用头文件。从父类继承时必须包含头文件

当你把头文件移到CPP的时候,你需要在第一个定义的时候加上Class

Skeletal Mesh Component骨骼网格体组件

为之前的Bird蓝图添加一个骨骼网格体,并且选择鸟的骨骼

BindInputs绑定输入

一个玩家的游戏,可以设置Player0来操控。shift+F1可以让鼠标和人物分离

绑定原理,将引擎里边写的前进和代码的绑定,当按下w时会给一个值1.0

添加绑定和代码编写,随后在bird蓝图里添加一个movement组件

添加相机臂和相机

导入头文件,定义相机臂和相机,编写代码

添加俯仰

新增轴映射,新建函数,绑定,编写,打开蓝图里的useYaw和Pitch

添为关卡添加默认pwan

新建一个GameMode的蓝图将里边的默认Pwan修改为BP_bird,并且将世界场景的gamemode覆盖为创建的

详细代码

头文件

// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"
#include "GameFramework/Pawn.h"
#include "Components/CapsuleComponent.h"
#include "Components/SkeletalMeshComponent.h"
#include "GameFramework/SpringArmComponent.h"
#include "Camera/CameraComponent.h"
#include "Bird.generated.h"UCLASS()
class ARPG_API ABird : public APawn
{GENERATED_BODY()public:ABird();virtual void Tick(float DeltaTime) override;
protected:virtual void BeginPlay() override;void MoveForward(float Value);void Turn(float Value);void LookUp(float Value);public:	// Called to bind functionality to inputvirtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;UPROPERTY(VisibleAnywhere)UCapsuleComponent* Capsule;UPROPERTY(VisibleAnywhere)USkeletalMeshComponent* BirdMesh;private:UPROPERTY(VisibleAnywhere)class USpringArmComponent* CameraArm;UPROPERTY(VisibleAnywhere)class UCameraComponent* Camera;};

CPP

// Fill out your copyright notice in the Description page of Project Settings.#include "Bird.h"// Sets default values
ABird::ABird()
{PrimaryActorTick.bCanEverTick = true;Capsule = CreateDefaultSubobject<UCapsuleComponent>(TEXT("Capsule"));SetRootComponent(Capsule);//创建骨骼网格体,并且附加在根组件下BirdMesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("BirdMesh"));BirdMesh->SetupAttachment(GetRootComponent());// 创建一个名为 "CameraArm" 的默认子对象,将 CameraArm 与根组件(RootComponent)关联//设置相机臂的目标长度CameraArm = CreateDefaultSubobject<USpringArmComponent>(TEXT("CameraArm"));CameraArm->SetupAttachment(RootComponent);CameraArm->TargetArmLength = 300.f;//创建一个名为 "Camera" 的默认子对象,关联相机臂使相机位于 CameraArm 的末端Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera"));Camera->SetupAttachment(CameraArm);//设置自动接收输入玩家0AutoPossessPlayer = EAutoReceiveInput::Player0;}// Called when the game starts or when spawned
void ABird::BeginPlay()
{Super::BeginPlay();}void ABird::MoveForward(float Value)
{if (Controller && (Value != 0.f)){FVector Forward = GetActorForwardVector();AddMovementInput(Forward,Value);}
}void ABird::Turn(float Value)
{	AddControllerYawInput(Value);
}void ABird::LookUp(float Value)
{AddControllerPitchInput(Value);
}// Called every frame
void ABird::Tick(float DeltaTime)
{Super::Tick(DeltaTime);}// Called to bind functionality to input
void ABird::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{Super::SetupPlayerInputComponent(PlayerInputComponent);// 绑定“MoveForward”输入轴到 MoveForward 函数,以响应玩家输入// 参数 FName("MoveForward") 指定了输入轴的名称// this 指针将 ABird 类的当前实例与输入组件绑定// &ABird::MoveForward 是处理输入的函数,它会在输入轴发生变化时被调用PlayerInputComponent->BindAxis(FName("MoveForward"),this,&ABird::MoveForward);PlayerInputComponent->BindAxis(FName("Turn"),this,&ABird::Turn);PlayerInputComponent->BindAxis(FName("LookUp"),this,&ABird::LookUp);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/163936.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux安装DMETL4

Linux安装DMETL4 产品与环境介绍1 规划安装路径2 DM8安装路径2.1 达梦数据库程序安装路径2.2 初始化达梦数据库2.3 创建数据库用户名 DMETL 3 安装DMETL3.1 查看安装包与授权3.2 安装DMETL程序3.3 DMETL安装日志 4 启动DMETL5 DMETL连接数据库后会自动创建相关资源表6 达梦数据…

视频增强和修复工具 Topaz Video AI mac中文版功能

Topaz Video AI mac是一款使用人工智能技术对视频进行增强和修复的软件。它可以自动降噪、去除锐化、减少压缩失真、提高清晰度等等。Topaz Video AI可以处理各种类型的视频&#xff0c;包括低分辨率视频、老旧影片、手机录制的视频等。 使用Topaz Video AI非常简单&#xff0c…

Java操作redis常见类型数据存储

一&#xff0c;Java连接Redis 1.1 导入依赖 打开IDEA在pom.xml导入依赖 注意&#xff1a;要在dependencies标签中导入 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version> &…

【elasticsearch+kibana基于windows docker安装】

创建网络&#xff1a;es和kibana容器互联 docker network create es-net加载镜像 docker pull elasticsearch:7.12.1运行 docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -e ES_JAVA_OPTS"-Xms512m -Xmx512m" -v $…

为什么深度学习模型的预测结果为数据集均值

如图&#xff0c;上边的为真值&#xff0c;下边的为预测值&#xff0c;可见预测值都是在30左右 一直debug不出来。后来发现是loss处写错了 用的torch.nn.MSELoss(pred,target)&#xff0c;其中pred的size是(batchsize,1), target的size是(batchsize)&#xff0c;此时会有警告但…

Go 面向对象,多态

面向对象 工程结构 新建一个oop.go package _oop // Package _oop 引用名称import ("fmt""strconv" )// GIRL 常量 const (// GIRL 自增GIRL Gender iotaFIRSTSECONDTHIRD )type Gender uint8 // 无符号的8位整数类型// User 结构体 type User struct…

Gin学习笔记

Gin学习笔记 Gin文档&#xff1a;https://pkg.go.dev/github.com/gin-gonic/gin 1、快速入门 1.1、安装Gin go get -u github.com/gin-gonic/gin1.2、main.go package mainimport ("github.com/gin-gonic/gin""net/http" )func main() {// 创建路由引…

个性化联邦学习-综述

介绍阅读的三篇个性化联邦学习的经典综述文章 Three Approaches for Personalization with Applications to Federated Learning 论文地址 文章的主要内容 介绍了用户聚类&#xff0c;数据插值&#xff0c;模型插值三种个性化联邦学习的方法。 用户聚类&#xff1a; 目的&a…

京东数据分析(京东销量):2023年9月京东投影机行业品牌销售排行榜

鲸参谋监测的京东平台9月份投影机市场销售数据已出炉&#xff01; 根据鲸参谋电商数据分析平台的相关数据数据显示&#xff0c;9月份&#xff0c;京东平台投影机的销量为13万&#xff0c;环比下滑约17%&#xff0c;同比下滑约25%&#xff1b;销售额将近2.6亿&#xff0c;环比下…

三国志14信息查询小程序(历史武将信息一览)制作更新过程03-主要页面的设计

1&#xff0c;小程序的默认显示 分为三部分&#xff0c;头部的标题、中间的内容区和底部的标签栏。点击标签可以切换不同页面&#xff0c;这是在app.json文件中配置的。代码如下&#xff1a; //所有用到的页面都需要在 pages 数组中列出&#xff0c;否则小程序可能会出现错误或…

js原型链

什么叫原型链 原型链是js中的核心&#xff0c;原型链将各个属性链接起来&#xff0c;在原型链上面定义&#xff0c;原型链上的其他属性能够使用&#xff0c;原型链就是保证继承 原型链区分 原型链分为显式原型和隐式原型 显式原型&#xff1a;只有函数和构建函数才有显式原型…

C++——类和对象(初始化列表、匿名对象、static成员、类的隐式类型转换和explicit关键字、内部类)

初始化列表、匿名对象、static成员、类的隐式类型转换和explicit关键字、内部类 本章思维导图&#xff1a; 注&#xff1a;本章思维导图对应的xmind文件和.png文件都已同步导入至资源 文章目录 初始化列表、匿名对象、static成员、类的隐式类型转换和explicit关键字、内部类1.…