controls控制器角度 自定義角度第三人稱

【獲取旋轉(zhuǎn)角度】
controls.addEventListener('change', changeControls)
function changeControls(event) {
console.log(camera.position)
let nem = controls.getAzimuthalAngle()
}
【自定義角度1】avatar是人物模型 turn 左右搖桿滑動距離 forward 前后搖桿滑動距離
// 圓盤上觸點與x軸正方向之間的夾角
let angle = Math.atan2(turn, forward);
// //相機->人物之間的向量
let targetVecCameraPlayer = new Vector3().subVectors(avatar.position, doc.camera.position).normalize();
let angle2 = Math.atan2(-targetVecCameraPlayer.z, targetVecCameraPlayer.x)
//方向向量為targetVecNorm
let targetVecNorm = new Vector3(Math.cos(angle2 - angle), 0, -Math.sin(angle2 - angle)).normalize();
// avatar.rotation.y = Math.PI+rotateCountX;
let ball = new Vector3(100 * Math.cos(angle2 - angle), 0, -100 * Math.sin(angle2 - angle))
avatar.lookAt(ball.x, 0, ball.z)
【自定義角度2】controls是軌道控制器 需要引入js

利用controls.getAzimuthalAngle()方法獲取控制器旋轉(zhuǎn)角度
然后
if (Math.abs(movement_forward) > Math.abs(movement_right)) {//判斷前后左右 搖桿移動距離 判斷用哪個偏移
avatar.translateZ(Math.abs(movement_forward));
} else {
avatar.translateZ(Math.abs(movement_right));
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容