在
当physics2d引擎中的 gravity unity2d Act中的ACT不同时,当以下两行代码交替实施时?
例如,我已将播放器控制器C#脚本附加到我的播放器精灵上:
private float speed = 500f;
RigidBody2D playerChar = null;
,然后使我的角色 walk :
Vector2 vec = new Vector2 (Input.GetAxis("Horizontal"), 0);
playerChar.AddForce(vec * speed);
重力设置为50
结果1:我的角色头像正常下降。
同时我做:
Vector2 vec = new Vector2 (Input.GetAxis("Horizontal"), 0);
playerChar.velocity = (vec * speed);
,重力仍设置为50
结果2:我的角色现在需要很长时间才能跌落(慢慢地"浮动"下降)。
为什么?
当您添加强制时,添加,它不会替换。
设置速度时,您会专门将其设置为Y值为0的vector2,重力然后在固定的更新周期中启动并增加了少量重力,从而导致玩家缓慢掉落。然后更新再次发生,然后将y值强制回到0。