ARVRServer

继承: Object

类别: 核心

简要说明

AR/VR服务器。

信号

  • interface_added ( String interface_name )

在添加新接口时发出。

  • interface_removed ( String interface_name )

删除接口时发出。

添加新跟踪器时发出。如果不使用固定数量的控制器或正在使用 ARVRAnchor S对于AR解决方案,必须对该信号作出反应,以添加适当的 ARVRControllerARVRAnchor 与此新跟踪器相关的节点。

删除跟踪器时发出。你应该删除任何 ARVRControllerARVRAnchor 分数(如适用)。这不是强制性的,节点只是变为不活动的,当一个新的跟踪器可用时(即一个新的控制器被打开,取代了前一个控制器),节点将再次变为活动的。

枚举

枚举 TrackerType

  • TRACKER_CONTROLLER = 1 ---跟踪器跟踪控制器的位置。

  • TRACKER_BASESTATION = 2 ---跟踪器跟踪基站的位置。

  • TRACKER_ANCHOR = 4 ---跟踪器跟踪AR锚的位置和尺寸。

  • TRACKER_ANY_KNOWN = 127 ---内部用于过滤任何已知类型的跟踪器。

  • TRACKER_UNKNOWN = 128 ---如果尚未设置跟踪器类型,则在内部使用。

  • TRACKER_ANY = 255 ---内部用于选择所有跟踪器。

枚举 RotationMode

  • RESET_FULL_ROTATION = 0 ---完全重置HMD的方向。不管用户在现实世界中朝哪个方向看。用户将在虚拟世界中遥遥领先。

  • RESET_BUT_KEEP_TILT = 1 ---重置方向,但保持设备倾斜。所以如果我们往下看,我们会一直往下看,但航向会被重置。

  • DONT_RESET_ROTATION = 2 ---不重置HMD的方向,只有玩家的位置居中。

描述

AR/VR服务器是我们的AR/VR解决方案的核心,处理所有的处理。

属性描述

设定器

设置主接口(值)

吸气剂

获取主接口()

违约

1.0

设定器

设置世界尺度(值)

吸气剂

获得世界范围

允许您根据游戏单位调整缩放比例。大多数AR/VR平台假设1个游戏世界单位=1个真实世界米。

方法说明

这是正确理解的一个重要功能。AR和VR平台的手柄位置都略有不同。

对于不提供空间跟踪的平台,我们的原点(0,0,0)是我们的HMD的位置,但是您对播放器在现实世界中所面对的方向几乎没有控制。

对于提供空间跟踪的平台,我们的起点在很大程度上依赖于系统。对于openvr,我们的原点通常是跟踪空间的中心,在地面上。对于其他平台,它通常是跟踪摄像头的位置。

此方法允许您将跟踪器放在HMD的位置上。它将获取HMD的当前位置,并使用该位置调整所有跟踪数据;本质上,将真实世界重新调整为玩家在游戏世界中的当前位置。

要使此方法产生可用的结果,必须提供跟踪信息。这通常需要在开始游戏后几帧。

您应该在经过几秒钟后调用此方法。例如,当用户请求重新调整显示器时,在控制器上保持一个指定按钮很短的时间,或者在实现传送机制时。

按名称查找接口。例如,如果您的项目使用AR/VR平台的功能,您可以通过名称找到该平台的接口并对其进行初始化。

返回主接口的转换。

获取在接口列表中给定索引处注册的接口。

  • int get_interface_count ( ) const

获取当前在AR/VR服务器上注册的接口数。如果您的项目支持多个AR/VR平台,您可以查看可用的界面,并向用户提供一个选择,或者简单地尝试初始化每个界面并使用返回的第一个界面。 true .

  • Array get_interfaces ( ) const

返回可用接口的列表每个接口的ID和名称。

  • int get_last_commit_usec ( )

  • int get_last_frame_usec ( )

  • int get_last_process_usec ( )

获取引用帧转换。主要用于内部,并公开用于gdantive构建接口。

获取给定ID处的位置跟踪程序。

  • int get_tracker_count ( ) const

获取当前注册的跟踪程序数。