[LayaAir3][LayaAir3]V3.2 | camera.up.z 调试结果不一致,导致无法判断结果?
上一次给的案例 因为输出的值太小可能有误导 我这次输出应该是一个正常范围的取值,但是结果任然不准确
而且我也在自己的函数里面调用camera.up的值结果均为零, 但是我如果自己输入一个Vector3的模拟值 就会得到正常结果
我这里初步判断:camera.up 输出值只有在控制台展开可以看到,可是调用 没办法正确获取
对于js浮点数的问题,参看camera.up.z 的值 不是特别小,值也就是在0.7 这个范围 但是任然显示0
而且我也在自己的函数里面调用camera.up的值结果均为零, 但是我如果自己输入一个Vector3的模拟值 就会得到正常结果
我这里初步判断:camera.up 输出值只有在控制台展开可以看到,可是调用 没办法正确获取
对于js浮点数的问题,参看camera.up.z 的值 不是特别小,值也就是在0.7 这个范围 但是任然显示0
看了一下你的Demo,你不应该去使用_up,帮你改了一下onStart,这样应该就是你想要的了。
onStart() {
//@ts-ignore
window.camera = this.camera;
// 使用 getUp() 获取摄像机的上方向向量
const upVector = new Laya.Vector3();
this.camera.transform.getUp(upVector);
console.log("展开看到原始数据:", upVector);
console.log(
"单独打印结果:",
"x:",
upVector.x,
"y:",
upVector.y,
"z:",
upVector.z
);
console.log("使用toPrecision:", "z:", upVector.z.toPrecision(36));
console.log("使用toString():", "z:", upVector.z.toString());
}
引擎是否有这样的机制,就是获取的值如果小数位超过一定位数 后就强制归零吗?我认为即便是出现浮点问题,应该确保有效位的值保留吧,而不是全部归零吧