【问题标题】:Get Local Position for Object in React-three-fiber在 React-three-fiber 中获取对象的本地位置
【发布时间】:2021-03-09 23:18:27
【问题描述】:

简报:我正在尝试将“drei Text”元素设置为在反应三纤维场景中靠近引脚的球体外部的一个点。这样当球体旋转或相机围绕球体旋转时,Texts 的位置就会以球体外侧为中心。

一个例子:three.js text alignment

问题:

如何找到对象的局部和世界空间位置或对象的部分/点?

我如何将对象位置设置为子对象的父对象,这样当父对象移动时,子对象也随之移动?

场景是否具有相对于 [0,0,0] 处的轴的世界位置和相对于对象的局部位置?

我的代码沙盒:earth with locations

【问题讨论】:

  • 我发现如果要在场景中添加HTML文本,可以用drei导入HTML文本,放在mesh标签里面;只要您的父网格有一个以自身为中心的轴。它在我的场景中不起作用的原因是指针金字塔的每个轴都以 [0,0,0] 为中心,而不是在每个金字塔位置。但是我仍然有一个问题,即当某些东西应该遮住它或者它不在视野范围内时,HTML 不会隐藏。我相信这可以通过光线投射或其他方式解决。

标签: reactjs three.js react-three-fiber


【解决方案1】:

查看Object3d,它是three.js 中许多对象的基类,包括场景本身。它具有可以帮助您喜欢 .position 和 .getWorldPosition() 的属性和函数。

请注意,场景中任何对象的位置都是相对于其父对象的。您可以使用 .add(child) 将子对象添加到对象中,但是对对象进行分组的更好方法可能是使用 Group

【讨论】:

    猜你喜欢
    • 2021-12-29
    • 2021-10-18
    • 2020-10-31
    • 2022-01-04
    • 1970-01-01
    • 2021-08-20
    • 2019-10-27
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多