unity中,大多数时候,都需要用 float 类型,
与 int 类型不同, float 类型在进行计算的时候,会有误差,
或多或少。
有一个问题,就是误差是会累积的,
假如,一次误差 0.001是无伤大雅的,
但是,累积到 0.1的时候,可能,就会出现问题,
最直观的情况,就是 地图的拼接,
大多地图都是由地块 ,一块一块拼接而成,
假如,两个地块之间的误差,仅仅只有 0.1而已,
但是,从画面上,很有可能,直接就能看出 接缝,
此时,就是穿帮了。
可是,float 是无法真正的精确的,误差是一定会存在的,
那么,怎么办呢?
办法就是尽可能的减少误差。
假如,
有 A 和 B 两个物体,
都在地图上,一个坐标是 (0,0,1),
一个坐标是 (0,0,2)
假如他们的位置是相对静止的,
那么,当画面动起来时,
我们可能让A 和 B 的都加上同一个偏移量,
但是,这不是最好的办法,这么做,误差仍然还会累积,
有一个办法,可以让误差不再累积,
B相对于 A 的坐标是 固定的,
所以,让 A 来移动