Aframe 框架是否允许用户在屏幕上固定按钮或文本?

Aframe 框架是否允许用户在屏幕上固定按钮或文本?,aframe,Aframe,例如,启用按钮位于右下角。我需要按钮和文本出现,并在事件触发时固定在屏幕上。类似于画布和按钮在unity中的工作方式 将按钮设置为摄影机的父级。然后他们会被锁定在摄像机前。 使用“位置”组件移动按钮,按钮将在其局部坐标空间中移动。 父/子关系是通过嵌套实体创建的,如下所示 <a-scene> <a-box> <a-sphere></a-sphere> <a-light></a-light> </

例如,启用按钮位于右下角。我需要按钮和文本出现,并在事件触发时固定在屏幕上。类似于画布和按钮在unity中的工作方式

将按钮设置为摄影机的父级。然后他们会被锁定在摄像机前。 使用“位置”组件移动按钮,按钮将在其局部坐标空间中移动。 父/子关系是通过嵌套实体创建的,如下所示

<a-scene>
  <a-box>
    <a-sphere></a-sphere>
    <a-light></a-light>
  </a-box>
</a-scene>


问题在于,在较小的设备上,该位置会从屏幕上消失。有什么办法解决这个问题吗?我不知道有什么现成的工具来管理这个问题,比如Unity的canvas。问题是你需要管理3D空间中的“屏幕空间”。您可以出于安全考虑,将UI对象放置在摄影机视图的中心附近。或者,您可以检测对象边缘是否超出摄影机平截头体,并将其移动到更中心的位置。下面是一个用于检测点是否位于摄影机平截头体内的提示。或者,如果查看器处于vr模式,则可以制作摄影机“装配”(作为摄影机父对象的实体),当发生移动时,移动装配,摄影机随之移动。然后,您可以将UI设置为装备的父级。这样,用户界面与摄像机保持固定距离,但不会锁定到屏幕空间。玩家可以查看用户界面(使用融合十字线进行交互?),然后根据需要将目光移开。在基于vive的游戏中,UI变得有点像魔杖。如果它不是一种虚拟现实体验,并且你真的想要一个锁定屏幕空间的UI,那么你可以用html和javascript制作一个位于3d窗口顶部的UI。使用css
style=“position:absolute;top:0px;left:0px;z-index:1000;”
可以强制html元素位于上方,然后使用javascript管理交互。在虚拟现实中不起作用,因为它不在3d世界中。但您可以设法使它在屏幕空间中动态地保持固定。下面是一个演示,演示如何使用html元素作为UI。制作一个开箱即用、类似于Unity的canvas UI系统的UI的一种方法是DAT.GUI。它不在3d空间中(因此在VR中不起作用),但它完美地捕捉到屏幕空间的边缘,并具有许多内置工具(滑块、按钮等),可以很好地与帧3d属性配合使用。这是一个演示。