繁体   English   中英

rigid body2D 和 box collider2D 统一

[英]rigid body2D and box collider2D in unity

我正在使用 unity,我有一个刚体 2D 和 box collider2D 附加到 object 和一个简单的运动脚本。 问题是由于精灵的制作方式我需要偏移盒子碰撞器以使其与精灵对齐但是当我偏移盒子碰撞器并撞到墙上时(这是一个自上而下的游戏)object开始漂移并干扰应该发生的运动。 如果我不抵消盒子对撞机,那么它在撞墙后不会漂移。 我整晚都对如何解决这个问题感到困惑,有什么建议吗?

private Vector2 movement;
public float moveSpeed = 4;
public Rigidbody2D rb;

 private void FixedUpdate()
    {
        movement.x = Input.GetAxisRaw("Horizontal");
        movement.y = Input.GetAxisRaw("Vertical");
        movement.Normalize();
        rb.velocity = movement * moveSpeed;
    }

它看起来只是碰撞的结果。 当具有刚体的物体发生碰撞时,它们的速度会像您对运动脚本所做的那样进行修改。 您可以通过更改物理材料属性(创建并添加它)来降低 object 的弹性。 您可以做的另一件事是更改刚体上的阻力和质量,以减少 object 的浮动。 最后我怀疑你只是让对撞机与你的精灵不完全匹配所以也许改用多边形对撞机? 最后,您可以做到这一点,这样您的速度在每次更新时都会少量降低,因此只要速度没有增加,它就会默认减速。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM