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>
/// 为obj添加Eventrigger监听事件
/// </summary>
/// <param name="obj">添加监听的对象</param>
/// <param name="eventType">添加的监听类型</param>
/// <param name="action">触发的函数</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 == )
{
m_eventTrigger.triggers = new List<EventTrigger.Entry>();
}
//定义所要绑定的事件类型
EventTrigger.Entry entry = new EventTrigger.Entry();
//设置事件类型
entry.eventID = eventType;
//定义回调函数
UnityAction<BaseEventData> callback = new UnityAction<BaseEventData>(action);
//设置回调函数
entry.callback.AddListener(callback);
//添加事件触发记录到GameObject的事件触发组件
m_eventTrigger.triggers.Add(entry); } private float origiValue = -;
private float endValue = ;
private void Enter(GameObject Obj)
{
Debug.LogError("进入");
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);
} }

最新文章

  1. QunInfo群数据库的还原与优化
  2. [Java] jackson注解
  3. Word Pattern | &amp; II
  4. C++-static的用法
  5. opener 属性是一个可读可写的属性,可返回对创建该窗口的 Window 对象的引用
  6. java 读取文件到String(解决中文乱码)
  7. ASP.NET 常识
  8. 使用text-overflow:ellipsis对溢出文本显示省略号有两个好处
  9. ado.net 学习小结
  10. [转]struct 用法深入探索
  11. 64位linux报错Could not initialize class java.awt.image.BufferedImage
  12. JS高程5.引用类型(6)Array类型的位置方法,迭代方法,归并方法
  13. JavaScript 深浅拷贝
  14. C#三步实现标准事件处理程序
  15. 超详细SQLMap使用攻略及技巧分享
  16. 在 fragment 里面调用 findViewById
  17. LOJ6285 数列分块入门9(分块)
  18. MySQL基本SQL语句之数据插入、删除数据和更新数据
  19. Android Studio OkHttpClient使用
  20. 25 The Go image/draw package go图片/描绘包:图片/描绘包的基本原理

热门文章

  1. Got error -1 from storage engine
  2. Gatling实战(三)
  3. 0x14哈希之兔子兔子
  4. ERROR internal error: process exited while connecting to monitor
  5. git Remote: HTTP Basic: Access denied Git failed with a fatal error.
  6. linux设置静态IP及网卡选择
  7. php rsa
  8. python_requests官方文档中文版
  9. webpack dllPlugin使用(基于vue-cli webpack模板)
  10. java 枚举使用教程