three.js判斷物體在人的前面,還是后面
const player = new THREE.Vectors(10, 0, 5);
const mesh = new THREE.Vectors(15, 0, 6);
上面,兩個變量分別表示,玩家的位置,物體的位置。
從這發現,當玩家和物體的角度關系
- 小于90度,物體就是在玩家前面
- 大于90度,物體就是在玩家的后面
所以代碼可以這么寫
const playerToMesh = player.sub(mesh); // 獲取玩家位置到物體位置的向量
const dot = player.dot(mesh);if (dot > 0) {console.log('在前面')
} else {console.log('在后面')
}