首页 > 解决方案 > Unity 2D:碰撞触发器

问题描述

所以在这里,am making a game for my thesis. The game is called hacky sack, I当我的触发器为真时我遇到了一个问题,因为我的角色和对象的碰撞正在通过,如果我没有触发器,即使我的播放器正在运行,它也只是基本上击中它。

你们能帮我看看物体/麻袋在撞击时是如何随机上升的吗?所以这是我的代码:

 public void Sipa()
 {
   if (canSipa == true)
    {
     _pitcha.GetComponent<Rigidbody2D>().AddForce(new Vector2(-400, 1000));
    }
 }

}

这是我的目标

private void OnTriggerEnter2D(Collider2D collision)
{
    if(collision.gameObject.tag == "Player")
   {
       _player.GetComponent<PlayerManager>().canSipa = true;
     }
}

 private void OnTriggerExit2D(Collider2D collision)
 {
    if (collision.gameObject.tag == "Player")
   {
   _player.GetComponent<PlayerManager>().canSipa = false ;
  }
 }

}

标签: c#unity3dtriggerscollision-detection

解决方案


添加第二个collider,比第一个稍大,标记它trigger。将较小的内部留给collider物理。你的“脚”应该进入trigger并激活它,然后与内部碰撞collider。确保collider标记trigger的是较大的。


推荐阅读