我正在使用設備方向控件,但需要一些額外的功能,我很難。Three.js:使用不同基本方向的DeviceOrientationControls
我希望用戶能夠「鎖定」相機,防止相機方向發生變化。當解鎖它時,我想讓視圖從鎖定它的位置旋轉攝像頭,即。我不希望相機「跳」到另一個方向,儘管手機的方向在視圖被鎖定時發生了變化。
下面是對DeviceOrientaionControls.js的修改版本的代碼:https://gist.github.com/BruOp/a3fb2f0854357eb1182671cafd3fae89
的關鍵部分是在update
,disconnect
和reconnect
。
我基本上採取了用戶在「鎖定」時看到的方向(稱爲lockedRot
),然後在「解鎖」(unlockedRot
)時獲取設備的方向。然後我找到四元數deviceToPercieved
這樣的:
deviceToPercieved * unlockedRot = lockedRot
但它不是真正的工作。有時候,相機在解鎖時只會稍微跳一點點,但有時候卻無法完全解鎖時保持「鎖定」方向。
我在這裏採取了錯誤的做法還是我錯過了更基本的東西?