Unity3d 水物理(当你跳进去时)统一2D

Unity3d 水物理(当你跳进去时)统一2D,unity3d,Unity3d,我正在做一个2d水下游戏,当玩家在水中时,我的重力设置为0,我想知道如何模拟它,所以当玩家跳入水中时,他不会在进入水中时粘在水上,而是会像跳入游泳池时一样受到力 我没有代码,因为我只是想理解这样做的逻辑。如果你想保持重力=0,你可以使用OnTriggerInter2D事件,获得玩家当前的方向和速度。当你进入水中并将重力设置为0时,你将这个向量应用到玩家身上 然而,因为没有力与你施加的力相反,你必须做更多的计算,这样水才会感觉真实 更简单的方法是不将重力设置为0,而是使用重力值在重力的相反方向上施

我正在做一个2d水下游戏,当玩家在水中时,我的重力设置为0,我想知道如何模拟它,所以当玩家跳入水中时,他不会在进入水中时粘在水上,而是会像跳入游泳池时一样受到力


我没有代码,因为我只是想理解这样做的逻辑。

如果你想保持重力=0,你可以使用OnTriggerInter2D事件,获得玩家当前的方向和速度。当你进入水中并将重力设置为0时,你将这个向量应用到玩家身上

然而,因为没有力与你施加的力相反,你必须做更多的计算,这样水才会感觉真实


更简单的方法是不将重力设置为0,而是使用重力值在重力的相反方向上施加额外的力。通过增加或减少这个力,你可以增加或减少玩家的“浮力”。

你可以尝试保持重力不变,当玩家落水时,只需增加一个垂直力,比如说重力的一半,以减缓玩家的下落并模拟浮力。