EZGUI组件:UIScrollList的点击事件
1 using UnityEngine; 2 using System.Collections; 3 4 public class ScrollListTest : MonoBehaviour 5 { 6 7 public UIScrollList list; 8 public GameObject prefab; 9 10 void Start() 11 { 12 for (int i = 0; i < 5; i++) 13 { 14 UIListItem item = (UIListItem)list.CreateItem(prefab); 15 item.Data = i; 16 item.SetControlState(UIButton.CONTROL_STATE.NORMAL); 17 item.AddInputDelegate(MyDelegate); 18 } 19 //list.SetSelectedItem(0); 20 21 } 22 23 void MyDelegate(ref POINTER_INFO ptr) 24 { 25 26 if (ptr.evt == POINTER_INFO.INPUT_EVENT.TAP) 27 { 28 Debug.Log(ptr.targetObj.Data); 29 } 30 31 } 32 33 }
之前在MyDelegate里面做的是
if ((ptr.targetObj.Data == list.SelectedItem.Data) && (ptr.evt==POINTER_INFO.INPUT_EVENT.TAP)) { Debug.Log("data " + list.SelectedItem.Data); }
在判断里面多加了一个条件,于是乎报出list.SetSelectedItem的空指针异常,随后添加上了第十九行代码,运行无误了,但是出现了两个问题,需求不一定是事先要选中某一个,另外得点击两次才能打印出Log,原因是第一次点击是为list.SetSelectedItem赋值,第二次点击才是正确的逻辑。多虑了,直接在ScrollList中取出值就行了,不需要做是否点击的哪一个ListItem。唉2了