egret-labs/egret3d

transform.translate命令似乎和重力有冲突

Opened this issue · 3 comments

在为模型添加刚体和碰撞体后,如果不调用transform.translate,物体可以正常掉落和碰撞。一旦调用了transform.translate命令,物体移动时就会穿模,遇到应跌落的地方也不会掉落,而是依然按着translate命令指定的方向继续移动,仿佛引力根本不存在...

akdcl commented

使用动态刚体就不能使用 transform 控制,而需要设置刚体的位置,可以用 syncTransform 来同步刚体位置。

使用动态刚体就不能使用 transform 控制,而需要设置刚体的位置,可以用 syncTransform 来同步刚体位置。

谢谢您的提醒,目前物体可以在受到重力影响下进行移动了。只是旋转似乎还是有些问题,游戏物体在重力影响下的自由转动似乎并不会被记录在transform.rotation当中(已打log确认)。现象:一个cube在游戏开始时被创建出来,自由落体到一个30度的坡道上,并贴合在坡上(x轴已转30度)缓慢下滑,然后调用syncTransform进行移动的瞬间,cube的三轴角度瞬间归0,且在同步代码调用过程中始终为0,直到停止调用后才会重新贴合到坡道上。
另外,经确认(打laog),刚体和碰撞产生的物体角度变化,会被保存至transform.localRotation中。但强行将localRotation赋值给rotation也无法摆脱上面的角度归0问题。运行游戏前强行将cube摆放成特定角度也不好使,似乎不论怎样,syncTransform都会把角度改成0 ㄟ( ▔, ▔ )ㄏ

那个...不旋转的问题...是我代码写错了 (。﹏。*)