AR.js 场景中可点击对象的错误位置

问题描述

我有一个简单的 AR.js 场景,它应该在 hiro 标记显示一个可点击的白框。单击后,框的颜色应更改为红色。实际上,框是可点击的,颜色也在变化,但它的位置和它的可点击区域的位置是不一样的。在我的情况下,这个区域在盒子下面。这是一个代码示例:

while True:

#Ask for upload or download
    try:

        sorr = input("Send or Receive ? (S/R): ")

        while not sorr == "S" or sorr == "R":

            sorr = input("Send or Receive ? (S/R): ")

    except:

        print('ERROR',error)
        print("Type S for send or R for receive")

    else:

        print(sorr)
        break

但是,如果您打开 aframe 检查器 (Ctrl + Alt + I) 然后关闭它,框的可点击区域及其位置将是正确的,我不明白这是怎么发生的。那么我怎样才能让这个场景以正确的方式显示呢?

解决方法

我研究了 aframe 检查器的工作原理,发现它在初始化后以编程方式插入了一个新的 raycaster,所以我决定做同样的事情并且成功了!

要将可点击区域与其对象放在同一位置,您需要做的就是在场景完全初始化后执行这些行。

const scene = AFRAME.scenes[0];
if (!scene) {
  return;
}
const mouseCursor = document.createElement('a-entity');
mouseCursor.setAttribute('cursor','rayOrigin','mouse');
scene.appendChild(mouseCursor);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...