I have designed a bowling game in which i have 10 pins.when i bowl a ball,pins are falling.,but i have no idea on how to detect that all pins are fallen.As i am new to unity please help in detecting strike in bowling game…thank you.!
You can loop through all the pins and see how much they are pointing upwards after they’ve stopped moving, or went below a certain velocity.
You can read transform.up to get the up vector, and check if the y component is below some threshold (depending on if slightly leaning on top of some other pin should count as fallen or not etc.)
-
if the y component is 1, the keg is standing upright.
-
If the y component is 0, it’s completely horizontal.
-
If the y component is -1, it’s upside down!
public Transform pins; // Assign these in the inspector or when spawning the pins
float threshold = 0.6f;
int fallen = 0;foreach( Transform pin in pins )
{
if( pin.up.y < threshold)
{
fallen++;
}
}if ( fallen == 10 )
{
Debug.Log(“Strike!”);
}
I would make it so if the pin isn’t in a certain area its marked as knocked over to detect this I would make a cube which goes through all the heads of the pins remove render from this cube then set it to an on trigger event then make it on update check how many pins are in the box if none then strike if 2 5 9 then yeah you get the point.