SOS! I’m already going crazy. Maybe someone will help me to solve the problem:
buttons are created from the prefab (in the cycle). I need attach trigger “OnSelect” to each button when creating. I have an error at string “instPans*.GetComponent ().triggers.Add(new EventTrigger.Entry {callback = t, eventID = EventTriggerType.Select});” Please! Help me!!! Thank you in advance!* using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; using UnityEngine.Events; using System; public class SnapScrolling : MonoBehaviour { public int panCount; public GameObject panPrefab; public ScrollRect scrollRect; public GameObject[ ] instPans; public EventTrigger.TriggerEvent t; private void Start () { instPans = new GameObject[panCount]; for (int i = 0; i < panCount; i++) { instPans = Instantiate(panPrefab, transform, false); var t = new EventTrigger.TriggerEvent (); t.AddListener (data =>
Amazing! Thats a great start, and it will explain exactly what is wrong. It is very important to read the error and try to understand it. At the very least when asking for help, post your error message.
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using System;
public class SnapScrolling : MonoBehaviour
{
public int panCount;
public GameObject panPrefab;
public ScrollRect scrollRect;
public GameObject[] instPans;
public EventTrigger.TriggerEvent t;
private void Start ()
{
instPans = new GameObject[panCount];
for (int i = 0; i < panCount; i++)
{
instPans [i] = Instantiate(panPrefab, transform, false);
var t = new EventTrigger.TriggerEvent ();
t.AddListener (data =>
{
var evData = (PointerEventData)data;
data.Use ();
OnSelectButton ();
instPans [i].transform.position = evData.position;
});
instPans.GetComponent<EventTrigger>().triggers.Add(new EventTrigger.Entry { callback = t, eventID = EventTriggerType.Select }); //Null Reference exception
if (i == 0) continue;
}
}
public void OnSelectButton()
{
Debug.Log("Trigger Select");
}
}