У вас есть два варианта:
1) Physics2D.Raycast , это может отлично работать для вашей игры, так как у вас есть единственный скрипт, который должен обнаруживать все карты.
void Update () {
if (Input.GetMouseButtonDown(0)) {
CastRay();
}
}
void CastRay() {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit2D hit = Physics2D.Raycast (ray.origin, ray.direction, Mathf.Infinity);
if (hit.collider !=null) {
Debug.Log (hit.collider.gameObject.name);
}
2) OnMouseDown , вы можете прикрепить скрипт ко всем своим картам с помощью метода OnMouseDown в них.
void OnMouseDown(){
Debug.Log (this.gameObject.name);
}
Оба варианта дадут вам имя объекта , особой разницы, особенно для небольшой игры. Основное отличие в том, что Physics2D.Raycast
работает только для 2D-коллайдеров. С другой стороны, OnMouseDown
является общим c.
Обратите внимание, что для обоих решений на ваших игровых объектах должны быть 2D-коллайдеры.