真Unity3d_分享一个通用事件监听EventTrigger以及拷贝代码去除空行问题

基于Unity3d的事件系统和C#的委托特性,提供一下通用事件监听代码,挺真通用的说,反正用过都说好

lua和C#都能通用,长期在项目中使用,无任何暗病

而网上覆制粘贴代码,很容易有空行,(或者前面行号)

代码


using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.EventSystems;                     //事件系统

 

namespace kernal

{

	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;

 

        /// <summary>

        /// 得到“监听器”组件

        /// </summary>

        /// <param name="go">监听的游戏对象</param>

        /// <returns>

        /// 返回监听器

        /// </returns>

        public static EventTriggerListener Get(GameObject go)

        {

            EventTriggerListener lister = go.GetComponent<EventTriggerListener>();

            if (lister==null)

            {

                lister = go.AddComponent<EventTriggerListener>();

            }

 

            return lister;

 

        }

 

        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);

            }

        }

 

 

 

    }//class_end

}

使用方法

EventTriggerListener.Get(Btn_10_Diamonds.gameObject).onClick += Purchase10Diamend;

另外,去除代码空行方法

  • Enter: Ctrl+H
  • Find what: ^(?([^\r\n])\s)*\r?$\r?\n
  • Replace with: [Empty]
  • Look in: Current Document
  • Find Option: Use Regular Expressions
  • Click: Replace All

    解释一下正则表达式^:b*$\n,^表示一行的开始,$表示一行的结束,:b表示空格或tab,*表示0个或多个。\n表示换行符。

  • 上面截图有点错。。。。。。。。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章