UE5 与 C++ 入门教程·第一课:角色与 Enhanced Input

这篇具有很好参考价值的文章主要介绍了UE5 与 C++ 入门教程·第一课:角色与 Enhanced Input。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文主要围绕 UE5 新的输入系统,手把手从 0 搭建 Unreal 项目,实现角色的基础移动。

重要提示:众所周知,C++ 属于编译型语言,因此动态灵活性不足,不过执行效率高,而蓝图简单灵活,却执行效率低。因此推荐一种开发方式—— 用 C++ 创建基类,蓝图继承 C++ 的基类 ,获得一种折衷的优势。

  • 开发工具:Visual Studio 2022
  • Unreal 版本:5.2.1

创建项目

  1. 新建一个基于 C++ 的空项目。
  2. File -> New Level(或者 Ctrl + N),建立一个 Basic 关卡,保存到新建的 Levels 文件夹中;
  3. Edit -> Project Settings… -> Project -> Maps & Modes 里将 Editor Startup MapGame Default Map 设置为新建的关卡。

角色资产

这里选用的 Epic 商城里的免费资产,Paragon: Lt. Belica。目前用的版本是(写的时候的最新的版本) 5.2.1,目前 Belica 还不支持这个版本,选一个最近的版本 5.1 添加到项目中。

ue5 c++编程,游戏开发,Unreal,ue5,c++

创建一个 Character 类

正如开头所说,我们希望获得一种相对优势,因此会用 C++ 作为父类,项目中实际使用的时候用创建蓝图类继承自 C++。对于简单的参数和功能就可以在蓝图上定制,对于通用或核心的功能或方法则可以在上级 C++ 类中实现。

Content BrowserC++ Classes 点击右键 New C++ Class... 或者在顶部 Tools -> New C++ Class…

这里并没有放到默认目录,而是放到 Character 目录里。注意,这里生成的 C++ 代码会有一个头文件的问题。

// 由于将类创建到 `Character` 目录下,自动生成的代码是下面的这样
#include "Character/BelicaCharacter.h"

// 去掉 Character/,改成下面这样,否则编译会出错
#include "BelicaCharacter.h"

Spring Arm 与 Camera

角色后面跟着一个相机,叫做 跟随相机(followed camera)。为了控制相机与角色的相对距离,通常还带一个弹簧臂(Spring Arm)。调整弹簧臂就可以调节相机的远近。可以说这是所有角色型游戏的基础。

因此,相机是依附于弹簧臂的。 弹簧臂动,相机就动。

我们需要两个组件,USpringArmComponentUCameraComponent。前缀 U 代表继承自 UObject

BelicaCharacter.h 中添加两个组件:

private:
	UPROPERTY(VisibleAnywhere, Category = Camera)
		class USpringArmComponent* CameraBoom;

	UPROPERTY(VisibleAnywhere, Category = Camera)
		class UCameraComponent* FollowCamera;

这里使用了前向声明的小技巧,对于指针类型,可以声明类型,而不需要引入头文件,这样可以避免影响编译速度。这就是为什么使用 class。当然,如果你愿意的话,也可以单独放到文件的开头进行声明,类似下面这样:

class USpringArmComponent;
class UCameraComponent;

UPROPERTY 是 Unreal 定义的宏。某种意义上也是黑魔法,例如你可以让 private 也可以被访问。UPROPERTY 用途非常广,比如变量复制、序列化、蓝图访问、垃圾回收。本文作为入门教程就不展开了。

BelicaCharacter.h 中使用了前向声明,但在 BelicaCharacter.cpp 中,我们就需要关注类的具体方法,因此就必须引入头文件。要查询类在哪个头文件里,最简单粗暴但有效的方法就是把类名贴入搜索引擎。如果你使用的是 Jetbrains 家的 Rider 进行 Unreal 开发,IDE 会自动帮你补全头文件,就可以不用操心这个问题。(特此声明,本人没有收取任何 Jetbrains 广告费)

ue5 c++编程,游戏开发,Unreal,ue5,c++

#include "GameFramework/SpringArmComponent.h"
#include "Camera/CameraComponent.h"

在构造函数中初始化这两个组件,并指明层级关系。文章来源地址https://www.toymoban.com/news/detail-723857.html

ABelicaCharacter::ABelicaCharacter()
{
   
	PrimaryActorTick.bCanEverTick = true;
	
	CameraBoom = 

到了这里,关于UE5 与 C++ 入门教程·第一课:角色与 Enhanced Input的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mysql入门基础教程(第一部分)

    MySQL基础教程解释了一些基本的SQL语句。如果这是您第一次使用关系数据库管理系统,本教程将为您提供使用MySQL数据库服务器所需的一切,例如查询数据,更新数据,管理数据库和创建表。 如果您已经熟悉其他关系数据库管理系统(如PostgreSQL,Oracle或Microsoft SQL Server等),

    2024年04月14日
    浏览(37)
  • 【Git 入门教程】第一节、什么是Git?

    在软件开发中,代码的管理和版本控制非常重要。为了更好地管理代码,需要使用一种有效的工具来保证代码的质量和稳定性。而Git正是这样一种工具。 Git是一种分布式版本控制系统,它可以追踪文件的变化,并且可以协同工作。它通过记录文件的修改历史,并在不同时间点

    2023年04月25日
    浏览(40)
  • 【虚幻引擎】UE4初学者系列教程基础篇-全中文新手入门教程

    一、 创建工程文件 (1)虚拟项目浏览器 (2)虚拟文件夹的结构 (3) 初学者内容包 二、虚幻引擎编辑界面介绍 (1)菜单栏 (2)关卡编辑器:工具栏  (3)“模式”面板  (4)“内容浏览器”面板 (5)视口面板 (6) 世界大纲视图 (7)细节面板 三、视口导航 四、

    2024年02月04日
    浏览(81)
  • 【虚幻4】UE4初学者系列教程基础篇-全中文新手入门教程

    一、 创建工程文件 (1)虚拟项目浏览器 (2)虚拟文件夹的结构 (3) 初学者内容包 二、虚幻引擎编辑界面介绍 (1)菜单栏 (2)关卡编辑器:工具栏  (3)“模式”面板  (4)“内容浏览器”面板 (5)视口面板 (6) 世界大纲视图 (7)细节面板 三、视口导航 四、

    2024年02月13日
    浏览(51)
  • 关于UE5角色动画蓝图的基本操作(基础向)

    1、在做角色蓝图动画前,首先需要有一个可操控的角色。操作方法如下:         新建Player文件夹-在其中创建关于世界设置的蓝图:GameModeBase、PlayerController、以及角色所需要的Character(在这里因为是以第三人称为基础所以创建此蓝图类)为了区分与系统的区别可以在命名前

    2024年02月11日
    浏览(86)
  • 【虚幻引擎】UE4初学者系列教程VR篇-全中文新手入门教程

    1.有vr来配置         无论使用的是何种头戴显示器,开发使用 SteamVR 的 VR 项目时都需要下载并安装 Steam,才能访问 SteamVR。以下部分将说明下载安装 SteamVR 的方法。         首先需要从 Steam 站点(http://store.steampowered.com/)下载并安装 Steam客户端。Steam 安装完成后,用

    2024年04月10日
    浏览(56)
  • 【虚幻引擎】UE4初学者系列教程(蓝图篇)-全中文新手入门教程(含蓝图节点详细介绍,即时更新~)

    蓝图篇 目录 蓝图基础逻辑 知识点1:蓝图是可视化编程 知识点2:蓝图是面向对象的编译型可视化编程语言 知识点3:关卡蓝图和蓝图类的区别 知识点4:蓝图数据类型 知识点5:节点的介绍 知识点6:引脚的介绍 知识点7:节点的执行顺序 知识点8:节点的类型 知识点9:节点

    2024年02月04日
    浏览(113)
  • 【虚幻4】UE4初学者系列教程(蓝图篇)-全中文新手入门教程(含蓝图节点详细介绍,即时更新~)

    蓝图篇 目录 蓝图基础逻辑 知识点1:蓝图是可视化编程 知识点2:蓝图是面向对象的编译型可视化编程语言 知识点3:关卡蓝图和蓝图类的区别 知识点4:蓝图数据类型 知识点5:节点的介绍 知识点6:引脚的介绍 知识点7:节点的执行顺序 知识点8:节点的类型 知识点9:节点

    2024年02月04日
    浏览(64)
  • 在 ZBrush、Substance 3D Painter 和 UE5 中创作警探角色(P2)

    大家好,下篇分享咱们继续来说警探角色的重新拓扑、UV、材质贴图和渲染处理。 这是对我来说最不有趣的部分——重新拓扑。它显然是实时角色中非常重要的一部分,不容忽视,因为它会影响大量的 UV、绑定和后期渲染,这里没有真正的捷径,我只是在 Maya 中导入了装备的

    2024年02月09日
    浏览(51)
  • 在 ZBrush、Substance 3D Painter 和 UE5 中创作警探角色(P1)

    小伙伴们大家好,今天瑞云渲染小编给大家分享的是自由CG艺术家Jean Zoudi创建《极乐迪斯科》的警探角色的项目花絮,会解释身体和服装的建模方式,分享角色发型和面部毛发背后的工作流程,也会详细介绍渲染过程。 大家好,我叫 Jean Zoudi,法国人,是一名从事游戏行业的

    2024年02月09日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包