真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表示換行符。

  • 上面截圖有點錯。。。。。。。。。。。。

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