[LayaAir3][LayaAir3]V3.2 | camera.up.z 调试结果不一致,导致无法判断结果?

上一次给的案例 因为输出的值太小可能有误导 我这次输出应该是一个正常范围的取值,但是结果任然不准确
而且我也在自己的函数里面调用camera.up的值结果均为零, 但是我如果自己输入一个Vector3的模拟值 就会得到正常结果

我这里初步判断:camera.up 输出值只有在控制台展开可以看到,可是调用 没办法正确获取
 
对于js浮点数的问题,参看camera.up.z 的值 不是特别小,值也就是在0.7 这个范围 但是任然显示0
2232323.png
已邀请:

layabox

赞同来自:

看了一下你的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());
}

谷主

赞同来自: layabox

_up是个随时在改变的值。你打印的是引用,然后展开观察,和打印x y z值完全是两码事。去了解控制台打印变量的工作原理,不要重复发帖。

Marco ⊙.⊙

赞同来自:

camera.transform.position 和camera._up
 
如果 只是因为小数位过长 就吧整个数归零吗? 我怀疑是底层的camera._up  输出有问题哈

Marco ⊙.⊙

赞同来自:

引擎是否有这样的机制,就是获取的值如果小数位超过一定位数 后就强制归零吗?我认为即便是出现浮点问题,应该确保有效位的值保留吧,而不是全部归零吧

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作