zoukankan      html  css  js  c++  java
  • UI界面事件监听

    事件监听方法

    using UnityEngine;
    using System.Collections;
    using UnityEngine.EventSystems;
    using System;
    using UnityEngine.UI;
    /// <summary>
    /// 按钮监听
    /// </summary>
    public class EventTriggerListener : UnityEngine.EventSystems.EventTrigger
    {
        public delegate void VoidDelegate(GameObject go);
        public VoidDelegate onClick;
        public VoidDelegate onDown;
        public VoidDelegate onEnter;
        public VoidDelegate onExit;
        public VoidDelegate onUp;
        public VoidDelegate onSelect;
        public VoidDelegate onUpdateSelect;
        public VoidDelegate onDeselect;
        public VoidDelegate onCancel;
        static public EventTriggerListener Get(GameObject go)
        {
            EventTriggerListener listener = go.GetComponent<EventTriggerListener>();
            if (listener == null) listener = go.AddComponent<EventTriggerListener>();
            return listener;
        }
    
    
        public override void OnPointerClick(PointerEventData eventData)
        {
            if (onClick != null) onClick(gameObject);
        }
        public override void OnPointerDown(PointerEventData eventData)
        {
            if (onDown != null) onDown(gameObject);
        }
        public override void OnPointerEnter(PointerEventData eventData)
        {
            if (onEnter != null) onEnter(gameObject);
        }
        public override void OnPointerExit(PointerEventData eventData)
        {
            if (onExit != null) onExit(gameObject);
        }
        public override void OnPointerUp(PointerEventData eventData)
        {
            if (onUp != null) onUp(gameObject);
        }
        public override void OnSelect(BaseEventData eventData)
        {
            if (onSelect != null) onSelect(gameObject);
        }
        public override void OnUpdateSelected(BaseEventData eventData)
        {
            if (onUpdateSelect != null) onUpdateSelect(gameObject);
        }
        public override void OnDeselect(BaseEventData eventData)
        {
            if (onDeselect != null) onDeselect(gameObject);
        }
        public override void OnCancel(BaseEventData eventData)
        {
            if (onCancel != null) onCancel(gameObject);
        }
    }

    事件监听方法的调用

    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI;
    using DG.Tweening;
    /// <summary>
    /// 控制任务栏的显示和收回
    /// </summary>
    namespace GameLogic.UI
    {
        public class UIImageCtrl : MonoBehaviour
        {
            [SerializeField]
            private Toggle TaskCtrl_tog;//任务button
            [SerializeField]
            private Dropdown DropDown;//任务button
    
            [SerializeField]
            private Sprite show;//按钮的图片
            [SerializeField]
            private Sprite hide;//按钮的图片
            [SerializeField]
            private GameObject HideShowUI;//需要隐藏的UI;
            void Start()
            {
                if (DropDown != null)
                {
                    EventTriggerListener.Get(DropDown.gameObject).onClick += DropDownOnClick;
                    EventTriggerListener.Get(DropDown.gameObject).onSelect += DropDownOnSelect;
                }
            }
    
            public void OnClick()
            {
                if (TaskCtrl_tog != null)
                {
                    if (TaskCtrl_tog.isOn)
                    {
                        TaskCtrl_tog.image.sprite = hide;
                        if (HideShowUI)
                        {
                            HideShowUI.SetActive(false);
                        }
                    }
                    else
                    {
                        TaskCtrl_tog.image.sprite = show;
                        if (HideShowUI)
                        {
                            HideShowUI.SetActive(true);
                        }
                    }
                }
            }
    
            private void DropDownOnSelect(GameObject go)
            {
                Debug.Log("下啦列表关闭");
              DropDown.gameObject.GetComponent<Image>().sprite = show;
            }
            private void DropDownOnClick(GameObject go)
            {
                Debug.Log("下啦列表开启");
                DropDown.gameObject.GetComponent<Image>().sprite = hide;
            }
        }
    }
  • 相关阅读:
    js使用html2canvas实现页面截图并保存图片
    微信小程序之图片base64解码
    微信小程序之回调函数
    小程序横向滚动
    搭建vue开发环境的步骤
    检测算法简介及其原理——fast R-CNN,faster R-CNN,YOLO,SSD,YOLOv2,YOLOv3
    hadoop常用命令
    工作流调度系统Azkaban的简介和使用
    java微服务简介与实战
    mxnet快速入门教程
  • 原文地址:https://www.cnblogs.com/qinshuaijun/p/8529882.html
Copyright © 2011-2022 走看看