【问题标题】:Three.js make Object3D Child face CameraThree.js制作Object3D童脸相机
【发布时间】:2016-01-27 00:52:41
【问题描述】:

我有一个 Object3D,它被旋转并有一个平面作为孩子,我怎样才能使平面始终面向相机?

var obj = new THREE.Object3D()
var plane = new THREE.Mesh()

obj.add(plane)
plane.lookAt(camera.position)

【问题讨论】:

  • 你需要控制你的角色吗?像这样:mrdoob.github.io/three.js/examples/…
  • 不,我的对象有一个平面,这是我用 canvas2d 创建的纹理,它应该始终面向相机,相机可以围绕 obj 旋转,obj 本身也可以移动和旋转

标签: three.js


【解决方案1】:

three.js r107 更新:

plane.lookAt(camera.getWorldPosition(v));

现在正在执行 OP 要求的操作,而旧解决方案的行为有所不同。更新示例:http://jsfiddle.net/7xj98f61/


使用来自zz85的thislookAtWorld添加

THREE.Object3D.prototype.lookAtWorld = function( vector ) {

  this.parent.worldToLocal( vector );
  this.lookAt( vector );

}

或者像这样破解它:

function animate() {
    /* ... */
    var vector = plane.parent.worldToLocal( camera.getWorldPosition() );
    plane.lookAt( vector );
}

示例: http://jsfiddle.net/L0rdzbej/201/

【讨论】:

  • 感谢工作就像一个魅力!我正在浏览同样的问题,并像 doob 先生在他上一篇文章中所做的那样尝试了它,但出现了一些奇怪的错误。
猜你喜欢
  • 2012-11-19
  • 1970-01-01
  • 2018-08-01
  • 2023-04-04
  • 2017-12-28
  • 2013-03-14
  • 1970-01-01
  • 2014-05-30
  • 2015-06-15
相关资源
最近更新 更多