我目前正在尝试在Unity中创建2D游戏,而我的Player的上半部有一个盒子碰撞器,下半部有一个圆形碰撞器;这样可以平滑斜坡和东西。
当我收集宝石时,由于我的两个碰撞器,我的OnTriggerEnter函数都会调用两次,除非我从上方掉下或从下方跳到它,因为一个碰撞器先于另一个碰撞器就碰到它。
有没有一种方法可以将对撞机合并为一张支票,以使它们不重叠?
The box and circle colliders
The OnTriggerEnter2D function
最佳答案
假设您不想使Box和Circle碰撞器的大小不同。
将脚本添加到具有变量“ isUsed”的Gem中,并在发生冲突时将其设置为true。这样在下次发生碰撞时可以忽略不计。
void OnTriggerEnter2D(Collision2D other)
{
if(other.gameObject.CompareTag("gem")){
GemScript gemScript = other.gameObject.GetComponent<GemScript>();
if(!gemScript.isUsed){
DO YOU STUFF HERE
gemScript.isUsed = true;
}
}
}