using UnityEngine;
using System.Collections;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using System.Collections.Generic;
using UnityEngine .UI ;
public class DistrictBgEvent {//门户小界面按钮功能private EventTrigger m_eventTrigger;public  string pathDistrictBg;public GameObject PanelName;private  bool m_state = true   ;private bool m_state_2 = true;private bool m_toggleState = false ;// Use this for initialization//初始化public void StartInit(GameObject Obj,string path){if (PanelName.name == "mainPanel(Clone)" || PanelName.name == "mainControllerPanel(Clone)"){Enter(Obj, path, "Gwh", "管委会");        }else{if (pathDistrictBg == "LeftBar/districtBg/mainconbg/"){Enter(Obj, path, "Gwh", "管委会");}else{Exit(Obj, path, "Gwh", "管委会");}}Exit(Obj, path, "Gjq", "高教区");Exit(Obj, path, "Jmq", "居民区");Exit(Obj, path, "Gyq", "工业区");Exit(Obj, path, "Yfq", "研发区");Exit(Obj, path, "Syq", "商业区");m_state = true;m_state_2 = true;m_toggleState = false ;}//鼠标进入事件public void MouseInit(GameObject Obj,string path) {AddTriggersListener(Obj.transform.Find(path + "LeftBtn/Gwh").gameObject, EventTriggerType.PointerEnter, GwhEnter);AddTriggersListener(Obj.transform.Find(path + "LeftBtn/Gjq").gameObject, EventTriggerType.PointerEnter, GjqEnter);AddTriggersListener(Obj.transform.Find(path + "LeftBtn/Jmq").gameObject, EventTriggerType.PointerEnter, JmqEnter);AddTriggersListener(Obj.transform.Find(path + "LeftBtn/Gyq").gameObject, EventTriggerType.PointerEnter, GyqEnter);AddTriggersListener(Obj.transform.Find(path + "LeftBtn/Yfq").gameObject, EventTriggerType.PointerEnter, YfqEnter);AddTriggersListener(Obj.transform.Find(path + "LeftBtn/Syq").gameObject, EventTriggerType.PointerEnter, SyqEnter);if (PanelName.name == "mainPanel(Clone)" || PanelName.name == "mainControllerPanel(Clone)"){}else{AddTriggersListener(Obj.transform.FindChild("TopBarBg/districtBg").gameObject, EventTriggerType.PointerEnter, OnPointerEnter_2);AddTriggersListener(Obj.transform.FindChild("TopBarBg/districtBg").gameObject, EventTriggerType.PointerExit, OnPointerExit_2);AddTriggersListener(Obj.transform.FindChild(path + "RightBtn/Gwh").gameObject, EventTriggerType.PointerEnter, OnPointerEnter);AddTriggersListener(Obj.transform.FindChild(path + "RightBtn/Gwh").gameObject, EventTriggerType.PointerExit, OnPointerExit);AddTriggersListener(Obj.transform.FindChild(path + "RightBtn/Gjq").gameObject, EventTriggerType.PointerEnter, OnPointerEnter);AddTriggersListener(Obj.transform.FindChild(path + "RightBtn/Gjq").gameObject, EventTriggerType.PointerExit, OnPointerExit);AddTriggersListener(Obj.transform.FindChild(path + "RightBtn/Jmq").gameObject, EventTriggerType.PointerEnter, OnPointerEnter);AddTriggersListener(Obj.transform.FindChild(path + "RightBtn/Jmq").gameObject, EventTriggerType.PointerExit, OnPointerExit);AddTriggersListener(Obj.transform.FindChild(path + "RightBtn/Gyq").gameObject, EventTriggerType.PointerEnter, OnPointerEnter);AddTriggersListener(Obj.transform.FindChild(path + "RightBtn/Gyq").gameObject, EventTriggerType.PointerExit, OnPointerExit);AddTriggersListener(Obj.transform.FindChild(path + "RightBtn/Yfq").gameObject, EventTriggerType.PointerEnter, OnPointerEnter);AddTriggersListener(Obj.transform.FindChild(path + "RightBtn/Yfq").gameObject, EventTriggerType.PointerExit, OnPointerExit);AddTriggersListener(Obj.transform.FindChild(path + "RightBtn/Syq").gameObject, EventTriggerType.PointerEnter, OnPointerEnter);AddTriggersListener(Obj.transform.FindChild(path + "RightBtn/Syq").gameObject, EventTriggerType.PointerExit, OnPointerExit);AddTriggersListener(Obj.transform.FindChild("TopBarBg/LeftPanel/LeftButtons/mainConBtn").gameObject, EventTriggerType.PointerEnter, OnPointerEnter_3);AddTriggersListener(Obj.transform.FindChild("TopBarBg/LeftPanel/LeftButtons/mainConBtn").gameObject, EventTriggerType.PointerExit, OnPointerExit_3);}}//监控系统下拉菜单点击关闭public void MouseClickUpdate(GameObject Obj,GameObject Obj_2){if (m_toggleState && Input.GetMouseButton(0) && Obj.transform.GetComponent<Toggle>().isOn && m_state  && m_state_2 ){Obj.transform.FindChild("Text").GetComponent<Text>().color = new Color(50 / 255f, 50 / 255f, 50 / 255f, 1);Obj_2.SetActive(false);Obj.transform.GetComponent<Toggle>().isOn = false;}}//门户小界面按钮功能/// <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 == 0){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 void Enter(GameObject obj,string path, string name_1, string name_2){obj.transform.FindChild(path + "LeftBtn/" + name_1 + "/Image").gameObject.SetActive(true);obj.transform.FindChild(path + "RightBtn/" + name_1).gameObject.SetActive(true);if (obj.name == "mainPanel(Clone)" || obj.name == "mainControllerPanel(Clone)"){obj.transform.FindChild(path + "LeftBtn/" + name_1 + "/Text").gameObject.GetComponent<Text>().color =new Color(0, 209/225f, 229/225f, 1);obj.transform.FindChild(path + "LeftBtn/" + name_1 + "/Text").gameObject.GetComponent<Text>().text = "   " +name_2 +"    >".ToString();}else{if (pathDistrictBg == "LeftBar/districtBg/mainconbg/"){obj.transform.FindChild(pathDistrictBg + "LeftBtn/" + name_1 + "/Text").gameObject.GetComponent<Text>().color =new Color(0, 209/225f, 229/225f, 1);obj.transform.FindChild(pathDistrictBg + "LeftBtn/" + name_1 + "/Text").gameObject.GetComponent<Text>().text ="   " + name_2 + "    >".ToString();}else{}}}private void Exit(GameObject obj,string path, string name_1, string name_2){obj.transform.FindChild(path + "RightBtn/" + name_1).gameObject.SetActive(false);obj.transform.FindChild(path + "LeftBtn/" + name_1 + "/Image").gameObject.SetActive(false);if (obj.name == "mainPanel(Clone)" || obj.name == "mainControllerPanel(Clone)"){obj.transform.FindChild(path + "LeftBtn/" + name_1 + "/Text").gameObject.GetComponent<Text>().text =name_2.ToString();obj.transform.FindChild(path + "LeftBtn/" + name_1 + "/Text").gameObject.GetComponent<Text>().color =Color.white;}else{if (pathDistrictBg == "LeftBar/districtBg/mainconbg/"){obj.transform.FindChild(pathDistrictBg + "LeftBtn/" + name_1 + "/Text").gameObject.GetComponent<Text>().text =name_2.ToString();obj.transform.FindChild(pathDistrictBg + "LeftBtn/" + name_1 + "/Text").gameObject.GetComponent<Text>().color =Color.white;}else{}}}private void GwhEnter(BaseEventData arg0){// Debug.Log("GwhEnter");Enter(PanelName,pathDistrictBg, "Gwh", "管委会");Exit(PanelName,pathDistrictBg, "Gjq", "高教区");Exit(PanelName,pathDistrictBg, "Jmq", "居民区");Exit(PanelName,pathDistrictBg, "Gyq", "工业区");Exit(PanelName,pathDistrictBg, "Yfq", "研发区");Exit(PanelName,pathDistrictBg, "Syq", "商业区");}private void GwhExit(BaseEventData arg0){// Debug.Log("GwhExit");}private void GjqEnter(BaseEventData arg0){// Debug.Log("GjqEnter");Enter(PanelName,pathDistrictBg, "Gjq", "高教区");Exit(PanelName,pathDistrictBg, "Gwh", "管委会");Exit(PanelName,pathDistrictBg, "Jmq", "居民区");Exit(PanelName,pathDistrictBg, "Gyq", "工业区");Exit(PanelName,pathDistrictBg, "Yfq", "研发区");Exit(PanelName,pathDistrictBg, "Syq", "商业区");}private void JmqEnter(BaseEventData arg0){// Debug.Log("JmqEnter");Enter(PanelName,pathDistrictBg, "Jmq", "居民区");Exit(PanelName,pathDistrictBg, "Gwh", "管委会");Exit(PanelName,pathDistrictBg, "Gjq", "高教区");Exit(PanelName,pathDistrictBg, "Gyq", "工业区");Exit(PanelName,pathDistrictBg, "Yfq", "研发区");Exit(PanelName,pathDistrictBg, "Syq", "商业区");}private void GyqEnter(BaseEventData arg0){// Debug.Log("GyqEnter");Enter(PanelName,pathDistrictBg, "Gyq", "工业区");Exit(PanelName,pathDistrictBg, "Gwh", "管委会");Exit(PanelName,pathDistrictBg, "Jmq", "居民区");Exit(PanelName,pathDistrictBg, "Gjq", "高教区");Exit(PanelName,pathDistrictBg, "Yfq", "研发区");Exit(PanelName,pathDistrictBg, "Syq", "商业区");}private void YfqEnter(BaseEventData arg0){// Debug.Log("YfqEnter");Enter(PanelName,pathDistrictBg, "Yfq", "研发区");Exit(PanelName,pathDistrictBg, "Gwh", "管委会");Exit(PanelName,pathDistrictBg, "Jmq", "居民区");Exit(PanelName,pathDistrictBg, "Gyq", "工业区");Exit(PanelName,pathDistrictBg, "Gjq", "高教区");Exit(PanelName,pathDistrictBg, "Syq", "商业区");}private  void SyqEnter(BaseEventData arg0){// Debug.Log("SyqEnter"); Enter(PanelName,pathDistrictBg, "Syq", "商业区");Exit(PanelName,pathDistrictBg, "Gwh", "管委会");Exit(PanelName,pathDistrictBg, "Jmq", "居民区");Exit(PanelName,pathDistrictBg, "Gyq", "工业区");Exit(PanelName,pathDistrictBg, "Yfq", "研发区");Exit(PanelName,pathDistrictBg, "Gjq", "高教区");}//监控系统下拉菜单private  void OnPointerEnter(BaseEventData arg0){m_state = false  ;Debug.Log("m_state" + m_state);}private  void OnPointerExit(BaseEventData arg0){m_state = true  ;Debug.Log("m_state" + m_state);}private void OnPointerEnter_2(BaseEventData arg0){m_state_2 = false  ;Debug.Log("m_state_2" + m_state_2);}private void OnPointerExit_2(BaseEventData arg0){m_state_2 = true  ;Debug.Log("m_state_2" + m_state_2);}private void OnPointerEnter_3(BaseEventData arg0){m_toggleState  = false  ;Debug.Log("m_toggleState" + m_toggleState);}private void OnPointerExit_3(BaseEventData arg0){m_toggleState = true  ;Debug.Log("m_toggleState" + m_toggleState);}
}

unity中Event Trigger组件应用代码相关推荐

  1. Unity中的关节组件和绳子效果的实现

    前言 在Unity中可以使用Joint(关节)来实现绳子的效果. Joint属于Unity里面的一种物理组件,是模拟物体与物体之间的一种连接关系,有以下几种类型:Hinge Joint(链条连接),F ...

  2. 关于Unity中的transform组件(二)

    在Scene视图中的蓝色网格,每一格默认是1米 一.沿着Z轴每秒移动10米 Transform cube_trans; void start(){ this.cube_trans=this.trans ...

  3. 【Unity】Audio Source组件——用代码动态控制音效的播放、暂停

    1.代码控制播放.暂停.停止 给游戏物体添加Audio Source组件 把音频文件拖入Audio Source组件的AudioCilp中 创建一个脚本并挂载 using System.Collect ...

  4. Unity中通过mask组件裁剪出圆形图片,制作出圆形头像

    1.首先找一张圆形图片和长方形图片 2.添加Image控件,同时将图片换成圆形图片 3.在第一个Image下再放一个Image控件,同时将图片换成长方形图片 4.最关键的一步来了,点击第一个Image ...

  5. Unity 之 ToLua框架中UI.Dropdown组件动态添加Options

    前言 最近使用ToLua框架使用Unity中的Dropdown组件,其他属性都还好和在C#中使用的形式差不多,只是修改成了Lua的语法习惯就可以了,但是我有个需求,是要需要实现动态添加Dropdown ...

  6. Unity EvenTrigerer UI交互组件

    Unity EvenTrigerer UI交互组件 Event Trigerer组件介绍 方便之处 事件选择 使用方法 1.拖拽法 代码添加 接口法 Event Trigerer组件介绍 该组件作用与 ...

  7. Event Trigger 使用方法

    Event Trigger 能让对象实现与鼠标互动的一些的效果,比如按钮,拖动都可以直接实现.//还有更多作用 1.首先在需要这个功能的对象下添加 Event Trigger 组件 2.在Event ...

  8. Unity中的静态合批、动态合批、GPU Instance 以及SRP Batching

    文章目录 Unity中的静态合批.动态合批.GPU Instance 以及SRP Batching 四种合批简介 GPU instancing static Batching Dynamic batc ...

  9. Unity基础笔记(1)—— Unity基本操作与基本组件介绍

    Unity 基本操作与组件 一.Unity 基本操作 1. Unity 界面详解 Hierachy:层级面板,游戏场景中的资源,比如UI.模型: Scene:场景面板,用于管理游戏场景中的各种游戏物体 ...

最新文章

  1. 修改mysql表结构语句
  2. Elasticsearch 性能调优
  3. java web html入门书籍,JavaWeb入门到学废的第一天(HTML学习)
  4. 人工智能的炒作_解密人工智能:是炒作还是我们期望太高
  5. ActiveReports 9 新功能:借助目录(TOC)控件为报表添加目录功能
  6. html是以一种通用的方法来,c++ 有一种通用的方法来使函数模板适应为多态函数对象吗?...
  7. mysql与串口通信_虚拟机串口与主机串口通信·小程序(下)
  8. “3D几何与视觉技术”全球在线研讨会第六期第七期
  9. 如何从io.Reader 中读数据
  10. VPC 2007 Console界面消失以及解决方法
  11. 蓝桥杯 ADV-133 算法提高 彩票
  12. CodeIgniter的伪静态配置
  13. autocad python二次开发_基于Python AutoCAD ActiveX 二次开发,pyautocad应用技术
  14. Gnu Screen用法 【转】
  15. 设计模式--模板方法(Template Method)
  16. 如何把JSON对象转为map对象
  17. 【SPSS统计分析】SPSS聚类分析:一个案例演示聚类分析全过程(附SPSS 19.0中文版下载)
  18. 移动端项目实现手机定位
  19. 7-2 查询水果价格 (15 分)
  20. [k8s集群系列-09]Kubernetes 组件 Dashboard

热门文章

  1. TIM定时器控制按键(按键长短按)
  2. mysql orderby 规则_MySQL中OrderBy多字段排序规则代码示例
  3. 小学生课间必备游戏(三子棋)
  4. parentNode,parentElement,childNodes,children之间的区别
  5. 艺术字体设计 一定要掌握这几个原则
  6. python(三)之高级篇
  7. Windows MiniHook HookAPIDemo
  8. IE JS获取IP地址
  9. 【密码加密】【MD5加密】【盐值加密】
  10. 系统补丁分发服务器,如何让服务器分发补丁