Camera 在VR模式内部或外部时,如何从鼠标切换到凝视或凝视到鼠标光标? 我要什么?
我将轻松地将鼠标事件从非VR模式下的鼠标光标切换到VR模式下的凝视光标。另请参见下面的伪代码: Example 1 为什么? 根据我第一次使用虚拟现实的人所做的研究,他们更喜欢鼠标光标。进入VR模式时,该光标不可用,通过进一步研究,凝视光标是最佳选择。由于HTC的控制器,Oculus、GearVR和Daydream的用户并不熟悉使用它 结论:Camera 在VR模式内部或外部时,如何从鼠标切换到凝视或凝视到鼠标光标? 我要什么?,camera,aframe,raycasting,cursors,Camera,Aframe,Raycasting,Cursors,我将轻松地将鼠标事件从非VR模式下的鼠标光标切换到VR模式下的凝视光标。另请参见下面的伪代码: Example 1 为什么? 根据我第一次使用虚拟现实的人所做的研究,他们更喜欢鼠标光标。进入VR模式时,该光标不可用,通过进一步研究,凝视光标是最佳选择。由于HTC的控制器,Oculus、GearVR和Daydream的用户并不熟悉使用它 结论: 在虚拟现实模式内:凝视光标是最佳选择 在VR模式之外:鼠标光标是最好的选择 我做的 研究 我在文档中找到了更改相机的方法: 切换活动属性时,组件将通
- 在虚拟现实模式内:凝视光标是最佳选择
- 在VR模式之外:鼠标光标是最好的选择
var secondCameraEl=document.querySelector(“#second camera”);
secondCameraEl.setAttribute('camera','active',true);
我的代码
这是我写的代码
Example 2
我将制作一台带有组件的相机,该组件将监听屏幕上的enterVR事件
- 当
时,在相机中创建光标(或将输入VR
设置为fuse
或true
缩放
至
)李>1
- 当
删除光标时(或将exitVR
设置为fuse
或false
将其设置为scale
)0
- 当
鼠标光标
组件不需要移除,因为在VR模式下它不相关
对于鼠标点击,请使用以下命令:我将制作一个带有组件的相机,该组件将监听屏幕上的enterVR事件
- 当
时,在相机中创建光标(或将输入VR
设置为fuse
或true
缩放
至
)李>1
- 当
删除光标时(或将exitVR
设置为fuse
或false
将其设置为scale
)0
- 当
鼠标光标
组件不需要移除,因为在VR模式下它不相关
对于鼠标单击,请使用以下命令:完成@Piotr回答:以下是我编写的最终代码:
require('aframe-mouse-cursor-component');
var scene=document.getElementById('scene');
scene.addEventListener('enter-vr',function(){
document.getElementsByTagName('a-camera')[0].setAttribute('cursor','maxDistance:1;fuse:true;fuseduration:1500');
document.getElementById('cursor').setAttribute('scale','1');
});
scene.addEventListener('exit-vr',function(){
document.getElementsByTagName('a-camera')[0].setAttribute('cursor','maxDistance:1;fuse:false');
document.getElementById('cursor').setAttribute('scale','0');
});
var-box=document.getElementById('box');
box.addEventListener('单击',函数()){
警报(“点击”);
});代码>
完成@Piotr回答:这是我最后的代码:
require('aframe-mouse-cursor-component');
var scene=document.getElementById('scene');
scene.addEventListener('enter-vr',function(){
document.getElementsByTagName('a-camera')[0].setAttribute('cursor','maxDistance:1;fuse:true;fuseduration:1500');
document.getElementById('cursor').setAttribute('scale','1');
});
scene.addEventListener('exit-vr',function(){
document.getElementsByTagName('a-camera')[0].setAttribute('cursor','maxDistance:1;fuse:false');
document.getElementById('cursor').setAttribute('scale','0');
});
var-box=document.getElementById('box');
box.addEventListener('单击',函数()){
警报(“点击”);
});代码>
你说得对,是从内存中完成的,但我认为这应该是你的解决方案:)你的解决方案大致正确。禁用熔断VR模式。唯一的问题是你又在虚拟现实之外了。当你将凝视光标对准黄色圆柱体,然后点击cude时,它将不起作用。我去更新我的问题以提供更多信息。你是对的,从内存中完成,但我认为这应该是你的解决方案:)你的解决方案大致正确。禁用熔断VR模式。唯一的问题是你又在虚拟现实之外了。当你将凝视光标对准黄色圆柱体,然后点击cude时,它将不起作用。我将更新我的问题以提供更多信息。('camera')[0]是否正常工作?我一直在使用.children[0]。顺便说一句,要使用click events而不将光标放在多维数据集上,请导入鼠标光标组件,无需重新创建:)是否('camera')[0]正常工作?我一直在使用.children[0]。顺便说一句,要使用click事件而不将光标放在多维数据集上,请导入鼠标光标组件,无需重新创建:)