【发布时间】:2020-12-07 23:10:43
【问题描述】:
我有一个脚本可以让硬币在空中上下浮动。
float increment = Mathf.Sin(startTime + Time.time * speed) * strength * Time.deltaTime;
Vector3 pos = new Vector3(this.transform.position.x, this.transform.position.y + increment, this.transform.position.z);
this.transform.position = pos;
它似乎有效,但它应该只更新 Y 位置。现在它还修改了 X 和 Z 的位置,但只有一点点,以至于只有在游戏运行了很多分钟后才会注意到。
Unity 是否在 Vector3 内进行舍入转换? position.x 和 position.z 没有以任何方式修改,但对象仍在缓慢移动。
【问题讨论】:
-
你为什么要把你的鼻窦当作增量?它不应该代替职位吗? -> 存储原始 Y 位置并始终将增量添加到原始 Y 位置
-
另外@kor_,您可以通过在任何地方添加“Debug.Log ...”来轻松调试它。此外,您根本不需要也不应该使用“this”。在这种情况下
标签: unity3d