在目前的VR应用中,特别是Cardboard类游戏中,经常用到的一个功能就是“检测玩家视线焦点对准的物体”。在虚幻4中,我们可以使用Line Trace来非常方便的实现这一功能。

 

 

DEMO源代码

为了演示这个功能的实现方法,我制作一个简单的DEMO,源代码请从这里下载:

https://github.com/neil3d/UnrealCookBook

使用的引擎版本为:4.11.2

打开项目后,启动“FocusActor/FocusActorMap.umap”地图文件即可运行。

 

在这个DEMO中,当玩家视线对准杯子或者花瓶的时候,对象顶部会出现一个文字。

 

功能实现

在上述DEMO中,我使用“/Game/FocusActor/Blueprints/BP_FocusActor_Player”来实现视线检测的功能。

 

首先在Tick的时候进行LineTrace:

 

在Line Trace到可交互的物体后,使用一个OnFocusActor自定义事件,来处理焦点对象变化的逻辑:

 

 

 

 

上图代码的基本流程是:先调用老的FocusActor的LostFocus事件;再调用新的FocusActor的OnFocus事件。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐