How can I detect which game object was clicked?
So, in my 2D game, I'm just trying to grab the details of a Game Object when I click it, however this is proving to be more difficult than it sounds.
I've been trying this with just my main Camera, a basic SpriteRenderer Background, and then a Canvas with an Image (just a coloured box). When I click the box, I am trying to get the gameobject through hit.collider.
Apparently, something like the below should work (leaned that from various sites). However, it's not picking up the Image, and I have tried a lot of variations. What settings/components do I need to have on my Image/Canvas/Camera for this to work?
I'm sure I'd be missing something basic. Up until now, I have been using scripts on each GO to detect clicks. Trying to get away from that.
 using UnityEngine;
 using System.Collections;
 
 public class InputController : MonoBehaviour {
     
     // Use this for initialization
     void Start() {
     }
 
     void Update() {
         if (Input.GetMouseButtonDown(0)) {
             Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
             Vector2 mousePosition2D = new Vector2(mousePosition.x, mousePosition.y);
 
             RaycastHit2D hit = Physics2D.Raycast(mousePosition2D, Vector2.zero);
             if (hit.collider != null) {
                 print("Working!");
             }
             else {
                 print("Not working");
             }
         }
     }
 }
A couple more points...
- I created an empty GO to attach the above script to 
- I have tried various combinations of the 2D $$anonymous$$esh / Box Collider components and their settings to no avail 
- I also attempted to match the z position of my mouse and the image, and have tried various Distances in the RaycastHit2D command, as well as Layermasks, but I could have done that wrong. 
Your answer
 
 
             Follow this Question
Related Questions
How can i detect 2 raycasthit2D in the same function storing their Vector2 position? 0 Answers
2D raycast not working 0 Answers
Need help making a ledge climber. The problem, transform.position always returns to vector( 0, 0) 0 Answers
How to Raycast 2D Diagonally instead of Horizontal on a Platformer game. 0 Answers
Raycast2d does not always work properly 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                