У меня есть такой код
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class Area : MonoBehaviour, IPointerDownHandler
{
public Image Area;
public void OnPointerDown(PointerEventData data){ //some code...}
}
Если я добавлю класс в изображение, он будет работать нормально, но я хотел бы добавить класс к объекту gameMaganer, установить для изображения значение Public Value Area и получить на нем OnPointerDown. Возможный?
Сид, я имею в виду, что перетаскиваю класс (скрипт) на изображение в инспекторе Unity
Ну, в таком случае да, вы можете добавлять любые скрипты в игровые объекты.
это будет отличаться от того, что мне нужно)
Ваш вопрос слишком широкий, да, вы можете сделать изображение общедоступным, да, вы можете реализовать OnPointerDown в скриптах (надеюсь)
но как это сделать?
перетащите свой скрипт на игровой объект? Я не понимаю твой вопрос
Я хочу добавить сценарий к объекту на сцене, но прикоснуться к изображению. У меня будет изображение в скрипте, и я хочу добавить в имат слушателя





То, что вы пытаетесь сделать, невозможно с помощью только одного сценария. Вам понадобится как минимум два скрипта:
IPointerDownHandler и вызывающий событие, чтобы ваш второй скрипт мог его прослушивать.using UnityEngine;
using UnityEngine.EventSystems;
[System.Serializable]
public class PointerEvent : UnityEngine.Events.UnityEvent<PointerEventData> {} ;
public class PointerDownHandler : MonoBehaviour, IPointerDownHandler
{
public PointerEvent OnPointerDownEvent ;
public void OnPointerDown(PointerEventData data)
{
if ( OnPointerDownEvent != null )
OnPointerDownEvent.Invoke( data ) ;
}
}
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class Area : MonoBehaviour
{
public PointerDownHandler PointerDownHandler;
private void Start()
{
OnPointerDownEvent.AddListener( OnPointerDown ) ;
}
public void OnPointerDown(PointerEventData data){ //some code...}
}
Что вы имеете в виду, добавляя класс к изображению?