A-Frame:使模型面向观众/屏幕中心或 canvas
A-Frame: make model face the viewer / center of the screen or canvas
我一直在努力让我的模型在框架中始终面向观众。
到目前为止,我一直在尝试使用相机组件来实现这一点,两者都是通过在实体中查看:
<a-entity id="entity" look-at="[camera]"></a-entity>
并在正文中添加脚本:
document.querySelector('#ebtity').object3D.lookAt('#camera');
默认相机:
<a-entity id="camera" camera look-controls></a-entity>
不过看起来相机组件并不代表真实世界的相机位置。
我只需要让模型面向观众 - 或者换句话说,始终面向屏幕中心或 canvas。
有人对如何完成这项工作有任何建议吗?
你的方向是对的,
实现这一点的最简单方法是注册一个自定义组件以拥有一个
实体面对另一个实体
AFRAME.registerComponent('look-at', {
schema: { type: 'selector' },
init: function () {},
tick: function () {
this.el.object3D.lookAt(this.data.object3D.position)
}
})
模式中的选择器类型已经运行 document.querySelector()
所以我们只需要通过 this.data
访问它
刻度函数是运行每帧不断更新对象旋转到目标
在您的场景中,您的相机获得一个 ID,然后将其传递给我们定义的 look-at
组件
<a-entity id="camera" wasd-controls camera look-controls position="0 1.5 0"></a-entity>
<a-plane look-at="#camera" ></a-plane>
这是一个工作示例
https://glitch.com/edit/#!/amusing-nervous-jaxartosaurus?path=index.html%3A13%3A7
我一直在努力让我的模型在框架中始终面向观众。 到目前为止,我一直在尝试使用相机组件来实现这一点,两者都是通过在实体中查看:
<a-entity id="entity" look-at="[camera]"></a-entity>
并在正文中添加脚本:
document.querySelector('#ebtity').object3D.lookAt('#camera');
默认相机:
<a-entity id="camera" camera look-controls></a-entity>
不过看起来相机组件并不代表真实世界的相机位置。
我只需要让模型面向观众 - 或者换句话说,始终面向屏幕中心或 canvas。
有人对如何完成这项工作有任何建议吗?
你的方向是对的,
实现这一点的最简单方法是注册一个自定义组件以拥有一个 实体面对另一个实体
AFRAME.registerComponent('look-at', {
schema: { type: 'selector' },
init: function () {},
tick: function () {
this.el.object3D.lookAt(this.data.object3D.position)
}
})
模式中的选择器类型已经运行 document.querySelector()
所以我们只需要通过 this.data
刻度函数是运行每帧不断更新对象旋转到目标
在您的场景中,您的相机获得一个 ID,然后将其传递给我们定义的 look-at
组件
<a-entity id="camera" wasd-controls camera look-controls position="0 1.5 0"></a-entity>
<a-plane look-at="#camera" ></a-plane>
这是一个工作示例 https://glitch.com/edit/#!/amusing-nervous-jaxartosaurus?path=index.html%3A13%3A7