關於 ThreeJS 子物體 旋轉有問題 子物體加入父物體後 位置旋轉錯誤 及Object3D.attach()的用法 等問題

首先感謝大佬 在 2015.4.18 向three官方提出的bug(感覺應該是功能缺失~~)

https://github.com/mrdoob/three.js/issues/6426

膜拜大佬~~~~~~~~~

 

-----------------------激動的分割線-------------------------

今天項目發現個問題...

如果父物體自帶旋轉,當其他物體使用 add() 進入子物體後就會出現位置旋轉錯亂

(當然我知道,如果是一個軸旋轉,可以通過 worldToLocal() 更換位置,然後反一下旋轉....)

雖然我還發現一個偏方....

直接用  parent.children.push(object) 放進子物體裏面...就不會影響本身旋轉等問題

但是如果你這是parent再產生旋轉就無法影響子物體了...(這壓根就是投機啊....)

你把object.parent=parent之後也會出現上面的問題,等於白忙

 

 (同事及時發現) 好在 ThreeJS 官方在v105版本增加 attach的功能

之後又在後兩個版本進行了修正

也就是v107就可以正常使用了,雖然我用的109哈

這個attach就可以在不影響本身旋轉及位置的情況更換父物體

api: https://threejs.org/docs/index.html#api/en/core/Object3D.attach

兩個增加子物體的方法,大家可以嘗試一下

add() 和 attach()

最上方大神連接裏面有詳細內容,如果需要研究的可以仔細看下~~~

 

LJason 祝各位順利

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章