gpt4 book ai didi

c# - OnTriggerEnter 调用两次

转载 作者:太空宇宙 更新时间:2023-11-03 14:43:48 25 4
gpt4 key购买 nike

我目前正在尝试在 Unity 中创建一个 2D 游戏,我的玩家在他的上半部分有一个盒子碰撞器,在他的下半部分有一个圆形碰撞器;这可以平滑坡道和其他东西。

当我收集一颗 gem 时,我的 OnTriggerEnter 函数会因为我的两个碰撞器而调用两次,除非我是从上面落到它上面或从下面跳到它上面,因为一个碰撞器明显先于另一个碰撞器接触到它。

有没有办法将碰撞器合并到一个检查中,这样它们就不会重叠?

The box and circle colliders

The OnTriggerEnter2D function

最佳答案

假设您不想让 Box 和 Circle collider 的大小不同。向具有变量“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;
}
}
}

关于c# - OnTriggerEnter 调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55506630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com