[英]In Babylon.js how can I get/set a FreeCamera's rotation or pan angle?
我試圖捕獲FreeCamera的位置以及平移角度或旋轉角度,以便以后可以使用完全相同的視圖重新定位攝像機。
(我正在http://www.babylonjs-playground.com/上使用Collision示例的變更版本)
我似乎能夠使camera.position.x,camera.position.y和camera.position.z正常,但是camera.cameraRotation.y始終為零。
根據http://www.html5gamedevs.com/topic/11380-rotate-camera-around-z-axis/和upVector:
camera.noRotationConstraint=true;
camera.upVector = new BABYLON.Vector3(1, 0.2, -1);
我想出的似乎可靠的方法是首先收集各種相機統計信息:
var firstPosition=camera.position.x.toFixed(2)+"/"+camera.position.z.toFixed(2)+"/"+camera.rotation.x.toFixed(2)+"/"+camera.rotation.y.toFixed(2)+"/"+camera.rotation.z.toFixed(2);
我存儲在數據庫中。 然后,在需要時,通過以下方式獲取攝像機的位置:
var firstArray=firstPositionL.split("/");
var firstX=Number(firstArray[0]);
var firstZ=Number(firstArray[1]);
var firstRx=Number(firstArray[2]);
var firstRy=Number(firstArray[3]);
var firstRz=Number(firstArray[4]);
然后,當重新創建場景時,我將其添加到場景創建的最后。 我將其放入延遲函數中,以給場景時間建立自身:
var myVar = setInterval(function(){ myTimer() }, 1000);
function myTimer() {
camera.position.x=firstX;
camera.position.z=firstZ;
camera.rotation.x=firstRx;
camera.rotation.y=firstRy;
camera.rotation.z=firstRz;
clearInterval(myVar);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.