我正在测试一个仅根据是否在下方接触地面而改变颜色的对象:若在下方向接地则为地面,否则为空中。
当落在向上移动的平台上时,似乎会被判定为在空中。平台的构造如图所示。如果有对平台构造的具体要求,请告知。
我正在测试一个仅根据是否在下方接触地面而改变颜色的对象:若在下方向接地则为地面,否则为空中。
当落在向上移动的平台上时,似乎会被判定为在空中。平台的构造如图所示。如果有对平台构造的具体要求,请告知。
感谢您的报告。
推测可能是墙壁碰撞体的尺寸过薄,导致物体在向上移动时发生穿透,从而使用于接触检测的法线被穿透。
请您尝试增加墙壁碰撞体的厚度并确认问题是否仍然存在。如果问题依旧,能否提供项目文件以便我们进一步排查?
已确认情况,将向开发团队报告。
在今天我们发布的版本1.1.3中,我们已对判定进行了调整。
嗯,速度缩放1.2以上似乎仍然会发生,这大概就是妥协点吧……。
啊,明白了,当将显示器的FPS设置为144FPS等时会出现该问题。
我会向开发团队确认,但这可能是Godot规范本身的问题……
这是因为Godot的物理处理(physics_process)始终以60fps进行处理(Unity等也采用类似机制)。
另一方面,AnimationPlayer的更新并不固定为60fps。在常规处理时机下这通常不会成为问题,但调整速度缩放(speed_scale)后,处理次数会单纯增加,从而导致处理同步偏差。(例如,当速度缩放为1.2时,每秒会执行72次处理,而物理处理仍为60次,从而产生偏差。)
因此,问题可能出在速度缩放侧,如果通过在AnimationPlayer中调整动画长度来解决,应该就不会出现问题了……
在我们确认的范围内,除了速度缩放外,其他方法似乎基本不可行。看来将速度控制在一定范围内更为现实。
顺便补充一下,似乎也有其他遇到同样问题的人,アクツク情報局方面也在研究中。