|
@@ -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里面是反向的
|
|
|
|