Przeglądaj źródła

调整视角位置

zjs_project 1 rok temu
rodzic
commit
6df2e01cac
1 zmienionych plików z 9 dodań i 9 usunięć
  1. 9 9
      src/pages/webgl_rxdz_roam/webgl_rxdz_roam.vue

+ 9 - 9
src/pages/webgl_rxdz_roam/webgl_rxdz_roam.vue

@@ -486,10 +486,10 @@
 					// if(parseInt(_actorLoaction[0])==0){//Y轴
 					// 	_actorLoaction[0] = spaceObj.centerY;
 					// }
-					let X_C = parseInt(_actorLoaction[0]);//X轴偏移量-UE原因
-					let Y_C = parseInt(_actorLoaction[1]);//Y轴偏移量-对应Three.js 的Z轴
+					let X_C = parseInt(_actorLoaction[0]);//X轴偏移量
+					let Y_C = -parseInt(_actorLoaction[1]);//Y轴偏移量-取反,UE里面的Y轴方向跟Three.js相反
 					let px = spaceObj.centerX + X_C;
-					let py = -spaceObj.centerY + Y_C;//UE里面的值跟Three.js Y轴相反
+					let py = -spaceObj.centerY + Y_C;//UE里面的centerY值跟Three.js Y轴相反;获得真实的坐标值
 					let position = {
 						x:(parseInt(px))/100,
 						y:1.5, 
@@ -551,7 +551,7 @@
 				// 	_actorLoaction[0] = spaceObj.centerY;
 				// }
 				let X_C = parseInt(_actorLoaction[0]);//X轴偏移量-UE原因
-				let Y_C = parseInt(_actorLoaction[1]);//Y轴偏移量-向量
+				let Y_C = -parseInt(_actorLoaction[1]);//Y轴偏移量-取反,UE里面的Y轴方向跟Three.js相反
 				let px = spaceObj.centerX + X_C;
 				let py = -spaceObj.centerY + Y_C;
 				//新的摄像机的位置-新的摄像机角度是倾斜角度,所以z值需要计算,高度设置为模型高度的2倍
@@ -564,16 +564,16 @@
 					let minX = 0,maxX = 0,minY = 0,maxY = 0;//0.1 是模型墙壁厚度
 					minX = (spaceObj.centerX - (spaceObj.spaceWidth/2))/100 + 0.1;
 					maxX = (spaceObj.centerX + (spaceObj.spaceWidth/2))/100 - 0.1;
-					maxY = -((spaceObj.centerY - (spaceObj.spaceHeight/2))/100 + 0.1);
-					minY = -((spaceObj.centerY + (spaceObj.spaceHeight/2))/100 - 0.1);
+					maxY = ((-spaceObj.centerY + (spaceObj.spaceHeight/2))/100 - 0.1);
+					minY = ((-spaceObj.centerY - (spaceObj.spaceHeight/2))/100 + 0.1);
 					//新的坐标轴不在房间范围内,则不能移动
 					// console.warn("**roamPositionHandle-观察点不在范围中****",JSON.stringify(cameraNewPosition),minX,maxX,minY,maxY)
 					if(cameraNewPosition.x<minX || cameraNewPosition.x>maxX
 					||cameraNewPosition.z<minY || cameraNewPosition.z>maxY){//不在房间范围
 						let _x = ((spaceObj.spaceWidth/2) - 15)*defaultActor.presentX + spaceObj.centerX;
-						let _z = ((spaceObj.spaceHeight/2) - 15)*defaultActor.presentY + spaceObj.centerY;
+						let _z = ((spaceObj.spaceHeight/2) - 15)*defaultActor.presentY + (-spaceObj.centerY);
 						cameraNewPosition.x = _x/100;
-						cameraNewPosition.z = - _z/100;
+						cameraNewPosition.z = _z/100;
 						console.warn("**roamPositionHandle-观察点不在空间范围-强制修正观察点位置****",JSON.stringify(cameraNewPosition))
 					}
 				}
@@ -824,7 +824,7 @@
 						element.actors.forEach(actor=>{
 							let _actorLoaction = actor.actorLocation.split(',');//x y z
 							let X_C = parseInt(_actorLoaction[0]);//X轴偏移量-UE原因
-							let Y_C = parseInt(_actorLoaction[1]);//Y轴偏移量-向量
+							let Y_C = -parseInt(_actorLoaction[1]);//Y轴偏移量-取反,UE里面的Y轴方向跟Three.js相反
 							let _x = element.centerX + X_C;
 							let _z = -element.centerY + Y_C;//centerY 要取反,因为UE里面是反向的