首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Unity中修复2D碰撞中的反弹?

如何在Unity中修复2D碰撞中的反弹?
EN

Stack Overflow用户
提问于 2020-05-25 04:11:42
回答 1查看 233关注 0票数 0

我的游戏是自上而下的2D游戏,当玩家在移动中与另一个物体相撞时,玩家开始反弹。我试过使用弹力度为0的2D物理材质,但它不能解决问题。我想这和我的动作代码的方式有关。我试过使用Rigidbody.MovePosition,但它不起作用,我的播放器出现故障。这是我的移动代码。

代码语言:javascript
复制
float horizontal = Input.GetAxis("Horizontal") * moveSpeed * Time.deltaTime;
float vertical = Input.GetAxis("Vertical") * moveSpeed * Time.deltaTime;

transform.Translate(new Vector2(horizontal, vertical));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-25 05:00:00

尝试在FixedUpdate内部的Rigidbody上使用MovePosition方法,而不是更改玩家变换的位置。如果这还不能解决问题,请尝试将播放器刚体的碰撞检测模式更改为连续。

当在一体化中处理物理和刚体时,您可能希望在FixedUpdate方法中完成大多数与物理相关的事情。这个方法与Unity的物理循环同步运行,并且所有的物理计算都是在所有FixedUpdate方法被调用之后立即完成的。这允许看起来平滑的交互和物理。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61991878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档