简介: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/

UE4 IOS的SDK未正常安装 ue4引擎安装失败_UE4 IOS的SDK未正常安装


2 打开官网之后点击下载 进入之后下滑点击点击下载启动程序

UE4 IOS的SDK未正常安装 ue4引擎安装失败_sed_02


3 下载安装之后打开软件 进入虚拟引擎

UE4 IOS的SDK未正常安装 ue4引擎安装失败_ue4_03

4 安装 VS2017 / VS2019

安装时需要勾选

UE4 IOS的SDK未正常安装 ue4引擎安装失败_sed_04

如果已经安装vs 但是没有添加这个选项 打开 软件之后 点击工具

UE4 IOS的SDK未正常安装 ue4引擎安装失败_UE4 IOS的SDK未正常安装_05

5 选择版本之后下载安装 安装之后打开虚幻引擎 创建一个c++的新项目

这里需要注意一点,项目名称不能有中文,不然可能会出现BUG

UE4 IOS的SDK未正常安装 ue4引擎安装失败_c++_06

6 打开Visual Studio 找到左上角 文件->打开Visual Studio

UE4 IOS的SDK未正常安装 ue4引擎安装失败_构造函数_07

7 打开UE4点击左下角的“显示/隐藏资源面板”。

UE4 IOS的SDK未正常安装 ue4引擎安装失败_UE4 IOS的SDK未正常安装_08

8 点击 “C++类” ,选中"GameProject" 文件夹,在右边的“资源面板”右键点击 “新建C++类”。

UE4 IOS的SDK未正常安装 ue4引擎安装失败_c++_09


9 选中“GameModeBase”(游戏模式),点击“下一步”。 选择公有和私有 之后点击创建类即可

UE4 IOS的SDK未正常安装 ue4引擎安装失败_c++_10


10. 同理 分别再创建 Character( 角色类)

PlayerController(控制器类 )

  1. 回到 VS 编辑器,在“内容浏览器”里面选择“内容(Content)”:
  2. 添加两个文件夹 “Assets” 以及在Assets新建一个“Maps”文件夹 之后在菜单栏点击保存关卡

UE4 IOS的SDK未正常安装 ue4引擎安装失败_UE4 IOS的SDK未正常安装_11


11. 设置默认游戏以及关卡 回到 UE4 编辑器,点击左上角“编辑”,然后打开“项目设置”:

选择“地图&模式”:

设置好了之后,每次打开编辑器点击“Play(播放)”都会默认打开这个地图和这个游戏模式。

  1. 设置默认的角色和控制器和默认地图

打开 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 IOS的SDK未正常安装 ue4引擎安装失败_ue4_12

  1. 编译之后 打开UE4 点击开始 会发现动不了了 原因是没有添加视角移动的逻辑 接下来开始写
    菜单-》编辑-》项目设置-》输入

UE4 IOS的SDK未正常安装 ue4引擎安装失败_ue4_13

之后添加六个按键输入

UE4 IOS的SDK未正常安装 ue4引擎安装失败_构造函数_14

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 打开之后实现移动功能

UE4 IOS的SDK未正常安装 ue4引擎安装失败_sed_15

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 个按键绑定

UE4 IOS的SDK未正常安装 ue4引擎安装失败_构造函数_16

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);
}
  1. 在项目设置中 添加跳跃的按钮绑定

UE4 IOS的SDK未正常安装 ue4引擎安装失败_ue4_17

在“APlayingCharacter.cpp” 中添加跳跃的功能函数

UE4 IOS的SDK未正常安装 ue4引擎安装失败_构造函数_18

//人物跳跃
void APlayingCharacter::JumpStart()
{
	//如果是真的话,角色跳跃
	bPressedJump = true;
}
void APlayingCharacter::JumpEnd()
{
	//如果是假的话,结束跳跃
	bPressedJump = false;
}

然后在在 SetupPlayerInputComponent 函数里面绑定按键输入:详情查看上方14 中的人物跳跃部分的代码