11716人加入学习
(26人评价)
【旧版】Unreal基本知识案例 - 密室逃脱

旧版课程,制作完成于2017-01-11

价格 免费

由于版本的不同,在GetWorld()出现了问题,应当这样修改

在.h中加上头文件#include"Runtime/Engine/Classes/Kismet/GameplayStatics.h"

在AActor* DefaultPawn;后面添加

ATutorialsPlayerController* TutorialsPlayerController = Cast<ATutorialsPlayerController>(PlayerController);

这样可以获取PlayController对象。

[展开全文]

tick中判断 TriggerVolume->IsOverlappingAcor是否出发Actor

(效率不高)

world中存储着所有的Actor和Controller之类的

所以我们需要的一切应该都可以通过world来得到

DefaultPawn = GetWorld()->getFirstPlayerController()->getPawn();

他这个defaultPawn也是在类中增加了一个指针.....

是不是随用随获取好一点

而且初始化操作放在BeginPlay中了 ,估计是因为对象创建的时候还没有创建玩家。

[展开全文]

运行时:

白色:本来存在的

黄色:运行时候生成的

 

DefaultPawn 默认创建的角色

 

Shift + F1 鼠标脱离场景

F8 弹出:同玩家控制器分离,允许正常的编辑器控制

 

每次修改完代码要编译一下

 

 

使用GetWorld()需要引入库:#include “Engine/World.h”

使用ATriggerVolume需要引入库:#include "Engine/TriggerVolume.h"

 

[展开全文]

4.21版本中使用 DefaultPawn = GetWorld()->GetFirstLocalPlayerFromController()->GetPawn;会报错"不允许指针指向不完整的类类型"

改用如下方法getpawn

在private中添加

APlayerController * playerController;

AActor * defaultPawn;

在BeginPlay()中添加

playerController = UGameplayStatics::GetPlayerController(GWorld, 0);
defaultPawn = PlayerController->GetPawn();

添加头文件

#include "Runtime/Engine/Classes/Kismet/GameplayStatics.h"

[展开全文]

授课教师

加我的QQ问问题:804632564

课程特色

图文(2)
视频(37)