簡體   English   中英

在Babylon.js中,如何獲取/設置FreeCamera的旋轉角度或平移角度?

[英]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);

操場示例: http : //www.babylonjs-playground.com/#2FNBTG#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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM