Search code examples
unity-game-enginecollision-detection

How to make objects collide just once?


I have objects that look like square.(have collider and rigidbody)

I want those squares to make a sound when I hit these squares with an object. But just once(once for scene). If I hit one of the squares again, ıt shouldn't make sound. How could I do this ?

Thanks in advance !


Solution

  • When the OnCollisionEnter() method is called you can check if a bool variable was set to true.

    hasCollided = false;
    
    void OnCollisionEnter(Collision collision){
        if (!hasCollided){
            // Play sound
            hasCollided = true;
        }        
    }