为什么我的位置没有在 ref.current.position 中更新
我正在尝试根据网格位置更改 r3f 场景中的相机位置。我还使用 r3f/cannon 进行物理和参考定位。每当我尝试检索我的身体位置时,裁判认为它没有改变,我只是得到了初始设定位置。为什么我无法检索更新后的位置?这是 ref 和 useFrame 的片段
const [ref, api] = useSphere(() => ({ args: [5,10,10], mass: 1, position: [0, 15, 0], material: { friction: 10}, ...props }))
useFrame(({clock}) => {
console.log(ref.current.position)
})
它只记录初始位置,即使对象正在移动
I am trying to change the camera position in my r3f scene based on a mesh position. I am also using r3f/cannon for physics and ref positioning. Whenever i try and retrieve the position of my body, the ref thinks it hasnt changed and i just get the initial set position. Why can't i retrieve the updated position? Here is a snippet of the ref and useFrame
const [ref, api] = useSphere(() => ({ args: [5,10,10], mass: 1, position: [0, 15, 0], material: { friction: 10}, ...props }))
useFrame(({clock}) => {
console.log(ref.current.position)
})
It only ever logs the initial position, even if the object is moving around
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是因为 cannon 没有更新对象的
位置
。对象位置通过矩阵变换进行更新。
您可以使用 api 来获取更新的位置:
This is because cannon is not updating the
position
of the object.The object position is updated through a
matrix
transform.you can use the api to get the updated position:
访问位置的正确方法是 ref.current.position
The correct way to access the position will be ref.current.position