public class UiButton : MonoBehaviour
{
private Button button;
public Button main;
public Transform Canves;
EventTrigger trigger;
void Start()
{
button = Instantiate(main, Canves.position,Quaternion.identity);
button.transform.SetParent(Canves);
//判断(添加)并获取EventTrigger组件
if (trigger == null)
{
trigger = button.gameObject.AddComponent<EventTrigger>();
}
trigger =button.GetComponent<EventTrigger>();
//使用EventTrigger组件
//trigger.triggers = new List<EventTrigger.Entry>();
#region 拖拽
EventTrigger.Entry enter = new EventTrigger.Entry();
enter.callback = new EventTrigger.TriggerEvent();
enter.eventID = EventTriggerType.Drag;
UnityAction<BaseEventData> action = new UnityAction<BaseEventData>(PEnter);
enter.callback.AddListener(action);
trigger.triggers.Add(enter);
#endregion
#region 回位
EventTrigger.Entry enter1 = new EventTrigger.Entry();
enter1.callback = new EventTrigger.TriggerEvent();
enter1.eventID = EventTriggerType.PointerUp;
UnityAction<BaseEventData> action1 = new UnityAction<BaseEventData>(PEnter1);
enter1.callback.AddListener(action1);
trigger.triggers.Add(enter1);
#endregion
}
private void PEnter(BaseEventData a)
{
button.transform.position = Input.mousePosition;
}
private void PEnter1(BaseEventData b)
{
button.transform.position = Canves.position;
}
}