统一改变代码不工作的摩擦(2D)

Unity changing friction from code not working (2D)

我想从代码中更改对撞机的物理 material,我使用下面的代码。我在检查器中看到 material 的摩擦力发生变化,但是对撞机的行为就像摩擦力不会改变一样。

 void checkOnGround() {
     Transform t;
     foreach(Collider2D c in collidingTiles) {
         t = c.transform;
         if(t.position.y - transform.position.y < -Misc.TILE_SIZE * 0.75f) {
             onGround = true;
             myCollider.sharedMaterial.friction = 0.8f;
             return;
         }
     }
     onGround = false;
     myCollider.sharedMaterial.friction = 0f;
     return;
 }

存在已知的 Unity 错误。 您可以 disable/enable 您的对撞机应用 material 更改,有时还可以轻弹一下纹理。