1. 程式人生 > >Unity3D程式碼動態繫結按鈕事件

Unity3D程式碼動態繫結按鈕事件

在場景載入時,即可繫結所有的事件處理函式,可以繫結onClick的監聽,亦可以繫結其他事件,稍作修改,還可使用於其他GameObject,不一定是Button.
public class ScenePlayEventHandler : MonoBehaviour
{
    private void Awake()
    {
        //按鈕
        var btns = FindObjectsOfType<Button>();
        foreach (var item in btns)
        {
            switch (item.name)
            {
                case "ButtonStart":
                    {
                        item.onClick.AddListener(delegate ()
                        {
                            GameManager.Instance().StartGame();
                        });
                    }
                    break;

                case "ButtonBackground":
                    {
                        var trigger = item.gameObject.GetComponent<EventTrigger>();
                        if (trigger == null)
                            trigger = item.gameObject.AddComponent<EventTrigger>();

                        if (trigger.triggers == null)
                            trigger.triggers = new List<EventTrigger.Entry>();

                        EventTrigger.Entry entry = new EventTrigger.Entry();
                        entry.eventID = EventTriggerType.PointerDown;
                        entry.callback = new EventTrigger.TriggerEvent();
                        entry.callback.AddListener(delegate (BaseEventData data)
                        {
                            GameManager.Instance().Jump();
                        });
                        trigger.triggers.Add(entry);
                        int a = 0;
                        a++;
                    }
                    break;
            }
        }
    }
}

相關推薦

Unity3D程式碼動態按鈕事件

在場景載入時,即可繫結所有的事件處理函式,可以繫結onClick的監聽,亦可以繫結其他事件,稍作修改,還可使用於其他GameObject,不一定是Button.public class ScenePl

Unity使用uGUI動態按鈕事件

適用場景 像這樣的彈窗在遊戲中經常出現,這個彈窗就是一個prefab,但是當不同的場景觸發這個彈窗時,彈窗上的“確定”按鈕觸發的事件是不同的。 因此需要為彈窗按鈕動態繫結事件。 STEP1 在彈窗入口處繫結事件 public void OnXXXBtnClic

UGUI中使用程式碼動態觸發事件

         前言:UGUI系統中官方提供了一種Button控制元件,Button封裝了官方提供的一套OnClick事件,如果該GameObject還需要支援按下,移入,移出等事件呢?這時候我們就需要新增EventTrigger元件。如果我們要給一個文字或是一張圖片,新

jquery input動態onchange事件

<input type=text>繫結onchange事件的注意事項: $('input[name=myInput]').change(function(){...}); However, this event will only fire when t

Delphi 程式碼建立控制元件與事件動態

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TF

js解決動態事件時不能傳參的問題

問題描述: js使用dom給元素繫結事件時如果直接傳入引數, 會有傳參失敗並且語句會執行並沒有成功繫結事件的情況 舉個例子,假如我們有一個div (id="div1"), 我們想給它繫結一個onclick事件並傳入字串引數: (錯誤案例, 會導致如上後果) var div=doc

金蝶bos 獲取標準產品分錄自帶按鈕的監聽及事件

protected void addLines() throws BOSException{  if(tabName != null && !tabName.equals("")){    

HTML中關於動態建立的標籤無法js事件的解決方法

小夥伴們在前端頁面的時候,是不是會經常遇到用JavaScript動態創建出來的Button按鈕或其他標籤無法使用點選事件的問題。如下程式碼,使用jquery在body中動態建立一個class為demo的Button按鈕,當點選這個按鈕時無法觸發點選事件。 <script> $(fun

9.42jquery動態新增元素無法觸發事件的解決方案

jquery動態新增元素無法觸發繫結的事件的解決方案。   ╭(●`∀´●)╯二狗最近在工作中遇到一個問題,即當用jquery動態新增元素後,發現給動態新增的元素卻無法觸發事件(╯#-_-)╯╧═╧ ( ╯#-_-)╯┴—┴。後來在網上查閱了一些資料,發現原來要這樣處理๑乛◡乛๑: 先上我出錯

動態事件

<head> <meta charset="UTF-8"> <title>demo</title> <script type="text/javascript" src="js/jquery-1.10.

JavaScript動態事件

什麼是動態繫結事件? js最突出優點在於能動態修改頁面樣式和動態修改頁面內容,然而在我們開發過程中,將動態新增的元素中繫結事件的現象稱為動態繫結事件。 動態繫結無法觸發js的案例? <html> <head> <meta char

AngularJS中單選按鈕和多選框的動態

AngularJS中的單選按鈕的動態繫結十分簡單,寫法如下: <input type="radio" name="sex" value="man" ng-model="sex">男 <input type="radio" name="se

js動態dropdownList 部分程式碼

(function ($) {     $.fn.Schoolselected = function(settings, extraSettings) {         var options;         options = {             NextSe

按鈕點選事件--onClick事件

例子:給按鈕新增繫結事件:<button type="submit" id="btn">btn</button>第一種:$("#btn").click(function(even

按鈕回車事件

1、document.onkeydown = function(){    if(window.event.keyCode == 13)        //做點選回車後的事件,回車的鍵值是13 } 2、ext的window中定義的按鈕,js獲取方法  首先,在buttons

用jquery給元素動態事件及樣式

網頁輸出的時候,可以用jquery給各種元素繫結事件,或設定樣式。之所以這樣做,好處是節省程式碼,尤其適合元素很多,並且元素的事件對應的函式雷同的情況。看看以下程式碼: <div id="divUserList"> <span><a href

2種js動態事件方法

1、使用原生JS動態為動態建立的物件繫結事件1-1、建立一個function,用來相容IE8以下瀏覽器新增事件 function addEvent(el, type, fun) { if (el.addEventListener) {

動態新增的標籤click事件不響應和關於IOS下click事件委託失效的解決方案

給動態新增的標籤使用jQuery繫結click事件不響應以及iOS裝置上click事件委託失效問題 不響應原因:當它使用jQuery繫結click事件時,對應的DOM物件還沒有生成,所以會不響應 解決方案1:可以使用代理事件來解決,程式碼1如下,但是使用下面這個程式碼1會引

js實現快捷鍵按鈕點選事件

document.onkeydown= function (e) { var theEvent = window.event || e;  var code = theEvent.keyCode || theEvent.which;  if (code == 13) {

uGUI使用程式碼動態新增Button.OnClick()事件Unity3D開發之十二)

猴子原創,歡迎轉載。轉載請註明: 轉載自Cocos2Der-CSDN,謝謝!uGUI出來這麼久了,也一直沒好好用用,主要是公司專案不用U3D。昨晚用了下Button,還是比較爽的。主要說下用程式碼新增button.OnClick()事件的方法(使用屬性面板新增的方法就不說了)