简介:UE4 的全名是 Unreal Engine 4,中文译为“虚幻引擎4”。UE4 是一款由 Epic Games 公司开发的开源、商业收费、学习免费的游戏引擎。
UE4 采用了目前最新的即时光迹追踪、HDR 光照、虚拟位移等新技术,而且能够每秒钟实时运算两亿个多边形运算,效能是目前“Unreal Engine”的 100 倍,而通过 NVIDIA 的 GeForce 6800 显示卡与“Unreal Engine 3”3D 引擎的搭配,可以实时运算出电影 CG 等级的画面,效能非常非常恐怖。
一, UE4 安装下载
前置条件: 安装UE4 ,VS2017 / VS2019
链接地址:http://c.biancheng.net/view/2549.html
1 下载地址: https://www.unrealengine.com/zh-CN/
2 打开官网之后点击下载 进入之后下滑点击点击下载启动程序
3 下载安装之后打开软件 进入虚拟引擎
4 安装 VS2017 / VS2019
安装时需要勾选
如果已经安装vs 但是没有添加这个选项 打开 软件之后 点击工具
5 选择版本之后下载安装 安装之后打开虚幻引擎 创建一个c++的新项目
这里需要注意一点,项目名称不能有中文,不然可能会出现BUG
6 打开Visual Studio 找到左上角 文件->打开Visual Studio
7 打开UE4点击左下角的“显示/隐藏资源面板”。
8 点击 “C++类” ,选中"GameProject" 文件夹,在右边的“资源面板”右键点击 “新建C++类”。
9 选中“GameModeBase”(游戏模式),点击“下一步”。 选择公有和私有 之后点击创建类即可
10. 同理 分别再创建 Character( 角色类)
PlayerController(控制器类 )
-
回到 VS 编辑器,在“内容浏览器”里面选择“内容(Content)”:
-
添加两个文件夹 “Assets” 以及在Assets新建一个“Maps”文件夹 之后在菜单栏点击保存关卡
11. 设置默认游戏以及关卡 回到 UE4 编辑器,点击左上角“编辑”,然后打开“项目设置”:
选择“地图&模式”:
设置好了之后,每次打开编辑器点击“Play(播放)”都会默认打开这个地图和这个游戏模式。
- 设置默认的角色和控制器和默认地图
打开 VS 编辑器, 打开“APlayingGameModeBase.h”文件,声明一个构造函数:
public: //构造函数 APlayingGameModeBase();
在“APlayingGameModeBase.cpp”文件中创建构造函数实现,然后在 #include “PlayingGameModeBase.h” 头文件的下面添加
#include "PlayingController.h" #include "PlayingCharacter.h"
之后在构造函数中添加以下代码:
APlayingGameModeBase::APlayingGameModeBase() { //设置默认角色类 DefulatPawnClass = APlayingCharacter::StaticClass(); //设置默认控制器类 PlayerControllerClass = APlayerController::StaticClass(); }
-
编译之后 打开UE4 点击开始 会发现动不了了 原因是没有添加视角移动的逻辑 接下来开始写
菜单-》编辑-》项目设置-》输入
之后添加六个按键输入
MoveForward : W MoveBack : S MoveLeft : A MoveRight : D Turn : 鼠标X LookUp :鼠标Y
设置完成后,打开 VS 编辑器,在“PlayingCharacter.h”文件下声明 4 个函数:
void MoveForward(float val); //人物往前移动 void MoveBack(float val); //人物向后 void MoveRight(float val); //人物向右 void MoveLeft(float val); //人物向左
找到 .cpp 打开之后实现移动功能
void APlayingCharacter::MoveForward(float val) { AddMovementInput(GetActorForwardVector(), val); } void APlayingCharacter::MoveBack(float val) { AddMovementInput(-GetActorForwardVector(), val); } void APlayingCharacter::MoveRight(float val) { AddMovementInput(GetActorRightVector(), val); } void APlayingCharacter::MoveLeft(float val) { AddMovementInput(-GetActorRightVector(), val); }
- GetActorForwardVector() 是在世界空间中从此 A 角色获取前向的向量,它获取的是 X 轴的向量。
- GetActorRightVector() 同上,它获取的是 Y 轴的向量。
13 在“SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)”函数里,我们添加 4 个按键绑定
void APlayingCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { //人物移动 Super::SetupPlayerInputComponent(PlayerInputComponent); InputComponent->BindAxis("MoveForward", this, &APlayingCharacter::MoveForward); InputComponent->BindAxis("MoveBack", this, &APlayingCharacter::MoveBack); InputComponent->BindAxis("MoveRight", this, &APlayingCharacter::MoveRight); InputComponent->BindAxis("MoveLeft", this, &APlayingCharacter::MoveLeft); //人物视角 InputComponent->BindAxis("Turn", this, &APawn::AddControllerYawInput); InputComponent->BindAxis("LookUp", this, &APawn::AddControllerPitchInput); //人物跳跃 InputComponent->BindAction("Jump",IE_Pressed,this,&APlayingCharacter::JumpStart); InputComponent->BindAction("Jump", IE_Released, this, &APlayingCharacter::JumpEnd); }
- 在项目设置中 添加跳跃的按钮绑定
在“APlayingCharacter.cpp” 中添加跳跃的功能函数
//人物跳跃 void APlayingCharacter::JumpStart() { //如果是真的话,角色跳跃 bPressedJump = true; } void APlayingCharacter::JumpEnd() { //如果是假的话,结束跳跃 bPressedJump = false; }
然后在在 SetupPlayerInputComponent 函数里面绑定按键输入:详情查看上方14 中的人物跳跃部分的代码
猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章