功能需求:在消消乐中,将鼠标点击的对象和相邻的对象(鼠标点击后放置的地方)位置进行互换;
介绍:1.0 使用的EventTrigger使用事件触发进行监听事件
2.0 UnityAction<T>这是一个泛型委托,用来将方法注册进去;
3.0 我们可以在UnityEvent中使用AddListener()方法注册UnityAction<T>;
void Awake()
{
Init();
}
public void Init()
{
EventTrigger trigger = gameObject.AddComponent<EventTrigger>();
//触发监听
UnityAction<BaseEventData> pointerEnterAction = new UnityAction<BaseEventData>(GemstonePointerEnterLister);//将方法注册到委托中
EventTrigger.Entry pointerEnterEvent = new EventTrigger.Entry { eventID = EventTriggerType.PointerEnter };
pointerEnterEvent.callback.AddListener(pointerEnterAction);//对委托也就是方法进行监听
trigger.triggers.Add(pointerEnterEvent);//将事件添加到EventTrigger中去
//点击监听
UnityAction<BaseEventData> pointerClickAction = new UnityAction<BaseEventData>(GemstonePointerClickLister);
EventTrigger.Entry pointerClickEvent = new EventTrigger.Entry { eventID = EventTriggerType.PointerDown };
pointerClickEvent.callback.AddListener(pointerClickAction);
trigger.triggers.Add(pointerClickEvent);
}
/// <summary>
/// 宝石在焦点触发时调用
/// </summary>
public void GemstonePointerEnterLister(BaseEventData data)
{
Debug.Log("触发对象");
}
/// <summary>
/// 宝石在点击时调用
/// </summary>
public void GemstonePointerClickLister(BaseEventData data)
{
Debug.Log("鼠标点击对象");
}