Hey, I’m relatively new to Unity3D, and I have to make a game for a piece of course work. The game I am making is a 2D shooter, where the play controls an object that can be moved left and right at the top of the screen. The objective is to protect a cube in the bottom center of the screen, while enemies attack from the left and right. I want the enemies to be destroyed when the hit the cube, but I can’t get it to work! here is the code I’ve been trying to use, which has worked in other parts of the game:
function OnCollisionEnter(collision : Collision) {
if(collision.gameObject.tag == "Player")
Destroy(gameObject);
}
The enemies come from a prefab called SpawnPrefab, and the cube is called Monument. I have tagged both the cube and the prefab/target as player, but it doesn’t work! Thanks in advance! ![]()
I don't see anything wrong here. Put a Debug.Log() statement inside the function to see if you are getting collisions at all. Something like: Debug.Log("Collision: "+collision.gameObject.name); How are you moving the enemies? Are you using the Rigidbody or are you manipulating the transform.
– robertbuWhat object is the script attached to? Also, OnCollisionEnter only works if the collider is not a trigger. If it is a trigger, use OnTriggerEnter instead: [http://docs.unity3d.com/Documentation/ScriptReference/Collider.OnTriggerEnter.html][1] [1]: http://docs.unity3d.com/Documentation/ScriptReference/Collider.OnTriggerEnter.html
– Arithan@robertbu I am manipulating the transform as far as I know. It's just weird, because the very same prefabs are destroyed when a bullet with the same code on them hits!
– CheenodashI also ran the debug, and nothing happened when my enemies hit, but when my bullet hit the cube, it registered collision :/
– CheenodashI Need something offline avaliabe
– Vinicios-de-Lima-Clarindo