Чтобы объект реагировал на клик мыши, нужно в его скрипт добавить интерфейс IPointerClickHandler.
Например, есть класс Examle, наследованный от MonoBehaviour. Имплементируем в нём этот интерфейс, добавляя «IPointerClickHandler» через запятую в объявлении:
public class Example : MonoBehaviour, IPointerClickHandler { ... }
После этого в классе Examle нужно реализовать метод OnPointerClick:
public class Example : MonoBehaviour, IPointerClickHandler { public void OnPointerClick(PointerEventData eventData) { Debug.Log("По мне кликнули!"); } ... }
Таким же образом — добавляя в объявление класса через запятую нужные интерфейсы — можно наделить объект способностью реагировать на другие события, например, на событие отпускания кнопки мыши — IPointerUpHandler. Так, если нам нужен и клик и отпускание и перетаскивание:
public class Example : MonoBehaviour, IPointerClickHandler, IPointerUpHandler, IDragHandler
Соответственно необходимо реализовать соответствующие методы: OnPointerUp и OnDrag.
Простейший класс перетаскивая может выглядеть так:
using UnityEngine; using UnityEngine.EventSystems; public class Example : MonoBehaviour, IPointerClickHandler, IPointerUpHandler, IDragHandler { public void OnPointerClick(PointerEventData eventData) { Debug.Log("По мне кликнули!"); } public void OnPointerUp(PointerEventData eventData) { Debug.Log("Меня отпустили!"); } public void OnDrag(PointerEventData eventData) { transform.position = eventData.position; } }