How to destroy something after X hits
I am trying to destroy something after it has been hit twice. I followed this page: http://answers.unity3d.com/questions/128945/destroy-object-after-5-collisions.html But i can not make the object delete or make a sound after it has been hit twice.
using UnityEngine; using System.Collections;
public class Harder_bricks : MonoBehaviour {
public int hit = 0;
public GameObject brickParticle;
public AudioClip Brick_breaking;
void OnCollisionEnter(Collision other)
{
hit += 1;
}
void checkhit()
{
if (hit == 2)
{
AudioSource.PlayClipAtPoint(Brick_breaking, transform.position);
Instantiate(brickParticle, transform.position, Quaternion.identity);
GM.instance.DestroyBrick();
Destroy(gameObject);
}
}
}
Any and all help is appreciated.
Answer by dkjunior · Oct 15, 2015 at 10:42 PM
You need to call checkhit() after incrementing:
void OnCollisionEnter(Collision other)
{
hit += 1;
checkhit();
}
Answer by SpaceFace15 · Oct 16, 2015 at 12:02 AM
Well bro, I'm kind of new at unity but I sorta understand. You should use a Raycast or a collider. For example if you're using a bullet to hit something:
public float RayLength;
public float Angle; // Ignore this
private bool MyBool;
public float SpeedRacer;
public float DragOn; // Ignore this
public GameObject Bullet;
//Below this will create your raycast hit meaning if this hits something something else will happen.
RaycastHit hit;
//Ray creation
Debug.DrawRay(transform.position, Vector3.down);
Ray MyRay = new Ray(position this ray is initialized at, Vector3.whatever direction you want it pointing to);
if (!MyBool)
{ //Creating the ray statement.
//Making the ray attached to the object.
if (Physics.Raycast(MyRay, out hit, RayLength)
{
if (your raycast variable.the collider of the object you wanna hit.its tag == "Your object you wanna destroy's tag")
{
//Put what ever you want to happen here for your case you want to destroy
Destroy(Your game object you want hit)
}
}
}
}
}
If you want it on collision:
void OnCollisionEnter(Collision YourGameobjectasAVarable)
{
if(YourGameobjectasAVarable.collider.tag == "YourGameObject'sTag")
{
//Whatever you want to happen, in your case you want it to be destroyed
Destroy(//Your game object//*)
}
Hope I helped bro, if you want to learn more check out unity's tutorials on scripting it's quite easy once you get it. Hope I said the right things lol.
I understand what you are saying but i was wanting something to be destroyed after two hits.
Thanks for the answer though!
Your answer
Follow this Question
Related Questions
Destroy Object on Collision (with di sound) 0 Answers
Help destroying a seperate game object on collision enter 1 Answer
Creating a background to have a random shape destroy effect 0 Answers
Play audio once while condition is met in update function (C#) 2 Answers
How to get particle velocity to affect audio amplitude 1 Answer