如何防止碰撞器在碰撞时相互阻挡

时间:2016-10-27 20:15:16

标签: c# unity3d game-physics physics-engine

我正在开发一个3D统一项目,我有一个平台,一个角色在该平台上运行,我将角色放在平台上,但它开始倒下,所以我按照这些步骤解决了问题:

  1. 在物体上添加了一个胶囊对撞机,它仍然通过平台落下

  2. 在平台上添加了一个对撞机,然后它没有倒下,但是现在这两个物体相互之间是这样的,所以角色只是在同一个地方移动她的腿,

    < / LI>

    有没有办法让角色在平台上移动而仍然使用碰撞器?

    注1:我在图像中制作了对撞机触发器,以便在没有碰撞器时产生相同的行为。

    注2:我试图将它们中的每一个放在不同的层上,但我遇到了同样的问题。


    代码:

    void Update () 
    {
        rbody.velocity = new Vector3(rbody.velocity.x,0f,playerVelocity*Time.deltaTime);
    
        rbody.transform.rotation = Quaternion.identity;
                         .
                         .
                         .
    }
    

    enter image description here

2 个答案:

答案 0 :(得分:1)

制作对撞机触发器就像不添加对撞机一样。触发器仅在您希望对撞机检测到某些内容但不会阻止它碰到某些东西时使用。所以我相信你应该为角色和平台添加一个非触发式对撞机,但是当你首先手动放置角色时,确保碰撞器不相交。如果那不起作用,请告诉我角色和平台的坐标以及碰撞器的大小,我将尝试复制你的场景以找出问题。希望这可以帮助!

答案 1 :(得分:0)

嗨朋友你有2个选择......

  1. 更改RigidBody的质量
  2. 使用PhysicsMaterial并减少对象之间的摩擦(将物理材质添加到平台)
  3. 增加剧本中的力量和移动速度。