Collision detection
Hello! I know there is quite a few of these questions, i have looked trough atleast 3 of them and none of the solutions works in my case for some reason. Anyway here is my code:
 using UnityEngine;
 using System.Collections;
 
 public class ironOre : MonoBehaviour {
 
     private terrainMovement terrainSpeed;
     private float speed;
 
     void Start () {
     terrainSpeed = GameObject.Find ("Terrain").GetComponent<terrainMovement> ();
     }
 
     void Update () {
         speed = terrainSpeed.speed;
         transform.Translate(0,speed*Time.deltaTime,0);
 
         if(transform.position.y > 1.6f){
             Destroy(this.gameObject);
         }
     }
 
     void OnTriggerEnter(Collider other)
     {
         if(other.tag == "Player")
         {
             speed = 0;
             Debug.Log ("Iron added");
         }
     }
 }
 
               Even though the iron ore touches and passes trough the player, it wont debug "iron added", i have one 2D collider on the player with "Is Trigger" checked. On the iron ore i also have one 2D collider, with the "Is Trigger" unchecked. I have tried adding a rigidbody to the iron ore but with no success, i have also expiremented with the "Is Trigger" on both the player and the iron ore. I find the colission detection in unity really confunsing to be honest. All help is appretiated, thank you!
Answer by Munchy2007 · Jan 05, 2016 at 02:52 PM
You definitely need a RigidBody2D on at least one of the objects for collisions to register. When you added a rigidbody previously did you make sure that it was the 2D version?
Also your trigger function is wrong for 2D it should be
 void OnTriggerEnter2D(Collider other)
 {
      if(other.tag == "Player")
      {
          speed = 0;
          Debug.Log ("Iron added");
      }
  }
 
              Thank you! I had forgot to put OnTriggerEnter2D and also change Collider to Collider2D. I also had to change the colission detection on the rigidbody2D to continious. But now it works as i want!
That's great glad you got it working. Could you please accept this as the answer, thanks :)
Your answer
 
             Follow this Question
Related Questions
OnTriggerStay2D() for 2 colliders simultaneously 1 Answer
Collision With Text 0 Answers
OnCollisionEnter2D not calling, but objects are colliding. 1 Answer
Player cannot destroy enemy 1 Answer