1. 程式人生 > >Unity 遊戲物體 EventTrigger 物體動態事件監聽

Unity 遊戲物體 EventTrigger 物體動態事件監聽

UGUI中普通的事件觸發方法已經瞭解了,現在講一下另一種觸發事件的方法,這種方法不僅可以讓2D的UGUI觸發還可以讓一個3D物體來觸發某個方法。

首先寫一個指令碼用來寫一個觸發事件的log方法,如下:

publicclassBtnEventTriggerTest : MonoBehaviour

{

voidStart ()

    {

//獲取或新增EventTrigger元件

EventTrigger trigger= transform.GetComponent<EventTrigger>();

if (trigger == null)

        {

           trigger=transform.gameObject.AddComponent<

EventTrigger>();

        }

//初始化EventTrigger.Entry的陣列

       trigger.triggers = newList<EventTrigger.Entry>();

//建立各種 EventTrigger.Entry 的型別

EventTrigger.Entry entry = newEventTrigger.Entry();

//設定Entry的eventID型別 即EventTriggerType的各種列舉(比如滑鼠點選,滑動,拖動等)

       entry.eventID = EventTriggerType.PointerEnter;

//註冊代理

UnityAction<BaseEventData> callback = newUnityAction<BaseEventData>(OnEventTrigger);

//新增代理事件到EventTrigger.Entry

       entry.callback.AddListener(callback);

EventTrigger.Entry entry2 = newEventTrigger.Entry();

       entry2.eventID = EventTriggerType.PointerDown;

UnityAction<BaseEventData

> callback1 = newUnityAction<BaseEventData>(OnMouseDown);

       entry2.callback.AddListener(callback1);

//在EventTrigger.Entry的陣列新增EventTrigger.Entry

       trigger.triggers.Add(entry);

       trigger.triggers.Add(entry2);

    }

privatevoid OnMouseDown(BaseEventData arg0)

   {

Debug.Log("OnMouseDown");

   }

privatevoid OnEventTrigger(BaseEventData arg0)

   {

Debug.Log("OnEventTrigger");

   }

}

然後在UGUI的UI元件上新增該指令碼,或在新增一個EventTrigger元件,執行使用滑鼠即可。

然而在遊戲物體比如Cube上,也是同UI一樣新增指令碼和EventTrigger元件。

但是攝像機卻不能識別3D的遊戲物體的滑鼠事件,在網上查了一下,原來還要在攝像機下新增一個Physics Raycaster的元件,用來檢測滑鼠射線,然後執行使用滑鼠即可。

相關推薦

Unity 遊戲物體 EventTrigger 物體動態事件

UGUI中普通的事件觸發方法已經瞭解了,現在講一下另一種觸發事件的方法,這種方法不僅可以讓2D的UGUI觸發還可以讓一個3D物體來觸發某個方法。 首先寫一個指令碼用來寫一個觸發事件的log方法,如下: publicclassBtnEventTriggerTest : Mon

unity打包webgl程式和js鍵盤事件衝突的問題。

最近用unity釋出webgl程式時,出現了一個挺蛋疼的問題就是,webgl裡面的程式他會接受js的鍵盤監聽事件,這樣就導致了webgl程式可以使用出入框,讓後js程式的輸入框就無效了,為了解決這個問題,我也找了一些資料,不過看了以後感覺大部分不能用,後來通過自己研究總結得出了下面的程式碼,親測可用,廢話不多

unity打包webgl程序和js鍵盤事件沖突的問題。

apt 初始 types oar document 了解 打包 tlist 判斷 最近用unity發布webgl程序時,出現了一個挺蛋疼的問題就是,webgl裏面的程序他會接受js的鍵盤監聽事件,這樣就導致了webgl程序可以使用出入框,讓後js程序的輸入框就無效了,為了解

Unity中button事件的四種方式

UGUI 視覺化建立以及關聯事件很方便, 動態建立可以利用建立好的 Prefab 進行例項化, 只是在關聯事件上有些複雜, 本文總結了幾種給按鈕繫結事件的關聯方式. 1. 視覺化建立及事件繫結 # Step 1 : 通過 Hierarchy 面板建立 UI

Delphi實現Android 廣播事件動態註冊廣播)

Android 下的廣播簡介 在Android下,很多事件需要使用到系統下的廣播。例如:你想知道手機電量的變化、是否安裝了一個新的程式應用包、擴充套件介質被移除等資訊時。Android廣播分為兩個方面:廣播發送者和廣播接收者,通常情況下BroadcastRec

AS3中通過事件傳遞引數以及動態變數傳遞的問題

 在AS3中,新增監聽,可以通過一種簡單的方式傳遞引數 如: column1.addEventListener(MouseEvent.MOUSE_OVER,function(e:MouseEvent){onMouseOverEvent(e,subRisk.days); });

JS 事件綁定、事件事件委托詳細介紹

兼容性 log 查看 and == 常用 提高 監聽 live 事件綁定 要想讓 JavaScript 對用戶的操作作出響應,首先要對 DOM 元素綁定事件處理函數。所謂事件處理函數,就是處理用戶操作的函數,不同的操作對應不同的名稱。 在JavaScript中,有三種常用的

JS中的事件事件

pan 交互 ack 其他 獲得 發生 listen 監聽器 pre 事件監聽:   使用監聽器(eventListener)來預定事件,在傳統軟件工程中稱成為觀察者模式   執行某種操作時(特定的交互瞬間),會產生對象,對象會沿事件流的方向傳播。 事件流:   事件流有

java中的key事件機制

com java.awt imp package 時間 ext javax .get pri package com.at221; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; im

Java 中的事件機制

add import userdata 開發人員 util ner dns pre sta 看項目代碼時遇到了好多事件監聽機制相關的代碼。現學習一下: java事件機制包含三個部分:事件、事件監聽器、事件源。 1.事件:繼承自java.util.EventO

Java中的事件機制

void 初始化 release vax 輸入 logs p s get location 鼠標事件監聽機制的三個方面: 1.事件源對象:   事件源對象就是能夠產生動作的對象。在Java語言中所有的容器組件和元素組件都是事件監聽中的事件源對象。Java中根據事件的動作來區

NavigationView的頭部的事件

navig現在App的UI設計中Drawerlayout+NavigationView是一個比較常用的設計了,而以前我一般只是在Navigation中的menu(即下部的item中)添加事件監聽,而今天碰到一個需要是要在header中增加事件監聽。  需求如下:點擊圖片,在底部彈出一個彈出窗口。     側邊

動態註冊

rod span desc -h pos acl row ora star SQL> select * from v$version where rownum=1; BANNER --------------------------------------

EventFiringWebDriver網頁事件(一)

sna system function tac hcl 通過 events att 腳本執行 Selenium提供了很多的event listening functions來跟蹤腳本執行過程中的events. How it works? 在註冊了listener的webDr

[轉]addEventListener() 方法,事件

傳遞參數 調用 參數 spa 默認 mouse 可選 als http 轉載 白楊-M http://www.cnblogs.com/baiyangyuanzi/p/6627401.html addEventListener() 方法,事件監聽 你可以使用 r

時間綁定和事件

func 控制 綁定 更新 cti jquery on() function 代碼塊 一般在網頁上回有不少節點的數據是根據數據庫進行更新的,這種節點都是由js代碼控制動態生成的,那麽綁定各種事件比如點擊事件的代碼塊會比生成節點的代碼塊先執行,那後生成的節點就不會被綁定上事件

事件綁定、事件事件委托

沒有 ack cap 總結 事件類型 ava 動態 blog 關於 在JavaScript的學習中,我們經常會遇到JavaScript的事件機制,例如,事件綁定、事件監聽、事件委托(事件代理)等。 一、事件綁定 要想讓 JavaScript 對用戶的操作作出響應,首先要對

事件之統計登錄用戶人數(含用戶名)案例

用戶名 登錄名 lsp eat 不同 over eve utf-8 put (一)創建一個User類,用於封裝一個用戶信息,該類實現了HttpSessionBindingListener接口中的valueBound()方法和valueUnbound()方法 1 packa

IE與DOM的事件

attach 事件監聽 不支持 cnblogs log ima 1-1 mage png IE 事件監聽 標準DOM不支持 註意幾點: window.onload attachEvent detachEvent 標準DOM監聽,ie不支

JavaScript事件

element ack mat 事件 rem 內部 一個 pre 才會 HTML DOM Event 對象參考手冊 addEventListener() 方法:向指定元素添加事件句柄,添加的事件句柄不會覆蓋已存在的事件句柄。 1.語法: element.addEvent