threeJs 修改TransformControls的顯示位置

总是被使用發表於2024-08-27

有的時候模型的原點不是自身中心而是在場景的[0, 0, 0]位置

這個時候想要讓TransformControls的位置顯示在模型的中心

目前找的的處理方式是修改原始碼
找到updateMatrixWorld方法

updateMatrixWorld () {
  ...
  for ( let i = 0; i < handles.length; i ++ ) {
	...
	if ( this.mode === 'translate') {
	  ...
	  // 加入以下程式碼
	  if (this.object) { // object為TransformControls attach 的模型
		const { box, center } = new Box3().setFromObject(this.object)
		handle.position.copy(center) // handle為操作杆
	  }
	  ...
	}
	...
  }
  ...
}

相關文章