繁体   English   中英

Unity 2D C#-对撞机不起作用

[英]Unity 2D C# - Collider not working

我正在Unity 5中开发 2D TopDown游戏。 碰撞根本不起作用。 玩家和障碍物都具有2D对撞机,并且它们不是触发器。 玩家有一个2D 刚体 ,其Kinematic设置为false重力比例 等于零 也许运动代码与此有关。 代码有点长,所以我只向您展示上移的代码:

if (Input.GetAxis ("Up") > 0) {

    if (movingDown == false) {

        posY += speed * Time.deltaTime;
        movingUp = true;
    }
} else {

    movingUp = false;
}

/.../

transform.position = new Vector3 (posX, posY, 0);

只要按下向上按钮,它始终会设置位置值。 有没有办法解决这个问题?

我认为问题在于您是直接设置职位。 因此,在每个帧处,您都在准确地告诉对象应该是一个统一的对象,它覆盖了从碰撞中计算出的位置。

要解决此问题,您需要修改运动代码,以向刚体添加力并保持不变(请参见刚体文档和功能AddForce( https://docs.unity3d.com/ScriptReference/Rigidbody.html ))

暂无
暂无

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

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