using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using DG.Tweening; using UnityEngine.Events; using UnityEngine.EventSystems; public class LeftMenuBarEvent { private static LeftMenuBarEvent leftMenuBar_this; //private LeftMenuBarEvent() //{ //} public static LeftMenuBarEvent Instance() { if (leftMenuBar_this == null) { leftMenuBar_this = new LeftMenuBarEvent(); } return leftMenuBar_this; } private bool m_state = true; private EventTrigger m_eventTrigger; public GameObject PanelName; public void StartInit(GameObject Obj) { Obj.transform.Find("LeftBarPanel/menu/_right").gameObject.SetActive(true); Obj.transform.Find("LeftBarPanel/menu/_left").gameObject.SetActive(false); } public void MouseInit(GameObject Obj) { AddTriggersListener(Obj.transform.Find("LeftBarPanel/menu").gameObject, EventTriggerType.PointerEnter, menuEnter); AddTriggersListener(Obj.transform.Find("LeftBarPanel/menu").gameObject, EventTriggerType.PointerExit,menuExit ); } /// <summary> /// Add Eventrigger to monitor events for obj /// </summary> /// <param name="obj"> Add monitor object </param> /// <param name="eventType "> Added listener type </param> /// <param name="action"> Triggered function </param> public void AddTriggersListener(GameObject obj, EventTriggerType eventType, UnityAction<BaseEventData> action) { m_eventTrigger = obj.GetComponent<EventTrigger>(); if (m_eventTrigger == null) { m_eventTrigger = obj.AddComponent<EventTrigger>(); } if (m_eventTrigger.triggers.Count == 0) { m_eventTrigger.triggers = new List<EventTrigger.Entry>(); } // Define the event type to be bound EventTrigger.Entry entry = new EventTrigger.Entry(); // Set the event type entry.eventID = eventType; // Define the callback function UnityAction<BaseEventData> callback = new UnityAction<BaseEventData> (action ); // Set the callback function entry.callback.AddListener(callback); // Add the event trigger component of the event trigger record to the GameObject m_eventTrigger.triggers.Add(entry); } private float origiValue = -160; private float endValue = 160; private void Enter(GameObject Obj) { Debug.LogError( " Enter " ); Obj.transform.Find("LeftBarPanel/menu/_right").gameObject.SetActive(false); Obj.transform.Find("LeftBarPanel/menu/_left").gameObject.SetActive(true); Obj.transform.Find("LeftBarPanel/menu/leftmenu").transform.DOLocalMoveX(endValue, 0.5f); } private void Exit(GameObject Obj) { Debug.LogError("退出"); Obj.transform.Find("LeftBarPanel/menu/_right").gameObject.SetActive(true); Obj.transform.Find("LeftBarPanel/menu/_left").gameObject.SetActive(false); Obj.transform.Find("LeftBarPanel/menu/leftmenu").transform.DOLocalMoveX(origiValue, 0.5f); } private void menuEnter (BaseEventData arg0) { Enter(PanelName); } private void menuExit(BaseEventData arg0) { Exit(PanelName); } }