检测非触发对象是否不在Trigger Unity 3D中

时间:2019-01-28 13:37:20

标签: c# unity3d

我有一个与其他触发对象一起发生的非触发对象onTrigger,当非触发对象没有与任何其他对象一起发生onTrigger时,我想调用一个函数。

我尝试了OntriggerExit,但是通过这种方式,当对象从被触发的对象退出时,即使它仍在与另一个对象一起触发时,也会调用该函数,希望您理解我的意思。

1 个答案:

答案 0 :(得分:0)

您可以创建一个数组或其他集合来存储与之碰撞的对象的ID或引用,然后在碰撞停止甚至计数器起作用时将其删除。

int _triggerCounter = 0;

void Update() 
{
    if (_triggerCounter == 0)
    {
        //do function
    }
}

void OnTriggerEnter(Collider other) {_triggerCounter++;}

void OnTriggerExit(Collider other) {_triggerCounter--;}

希望对您有帮助。