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