When hitting border teleport bullet to player.
Basically Im trying to make a simple game. So my bullet which goes upwards has the code:
function Update () {
transform.Translate(Vector2.up * speed * Time.deltaTime);
}
This code allows for my bullet to go up. My bullet also has a 2D rigidbody and is set gravity scale to 0 and "Is kinematic" to true. My whole code is here:
#pragma strict
public var speed : float = 10f;
public var border : GameObject;
public var player : GameObject;
function Start () {
}
function Update () {
transform.Translate(Vector2.up * speed * Time.deltaTime);
}
var thePositionToMoveTo : GameObject;
function OnCollisionEnter(other : Collision) {
Debug.Log("Hit");
if(other.gameObject.tag == "Respawn") { //Or whatever
this.transform.position = thePositionToMoveTo.transform.position;
}
}
And so when the bullet goes up and hits the sprite, it goes right through and doesn't even log the "Hit" message. Both of these objects have rigidbody components and both have 2d colliders. Also the 2d sprite that is supposed to be the respawn is marked with a tag "Respawn". So instead of the bullet going to the "thePositionToMoveTo" position it just keeps on going up. I need quick help. Thanks :)
Answer by NinjaISV · Nov 18, 2015 at 01:59 AM
Are you using 2D Colliders? If so you must use function OnCollisionEnter2D(coll: Collision2D)
instead of what you are currently using. http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnCollisionEnter2D.html
Your answer
Follow this Question
Related Questions
Cannot properly access player position 1 Answer
How to get the position of a gameObject based on its index in an array? 0 Answers
How To Make An Object Appear In Front Of Player Without Cloning? 1 Answer
Transform GameObject position with random range 0 Answers
How to get continuous reference to a GameObject's position? 2 Answers