您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)Unity如何實(shí)現(xiàn)模型點(diǎn)擊事件的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
觸發(fā)模型點(diǎn)擊事件的必要條件
需要觸發(fā)模型點(diǎn)擊事件的模型身上必須要掛載Collider 組件
通過(guò) OnMouseDown 函數(shù)監(jiān)聽(tīng)(只能在PC端有效)
1.在Hierarchy 面板中右鍵,點(diǎn)擊 3D Object->Cube 按鈕,創(chuàng)建一個(gè) Cube 模型
2.新建一個(gè)腳本,命名為“Test.cs”(代碼如下)
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test2 : MonoBehaviour { private void OnMouseDown() { Debug.Log("OnMouseDown"); } }
3.將 Test.cs 腳本,掛載到Cube 上,(運(yùn)行,點(diǎn)擊模型后結(jié)果如下)
通過(guò)射線檢測(cè)事件監(jiān)聽(tīng)(所有平臺(tái)都可以執(zhí)行,推薦使用這種方式)
1.新建一個(gè)腳本,命名為“ColliderEvent.cs”(代碼如下)
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ColliderEvent : MonoBehaviour { private void Update() { if(Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hitInfo; if(Physics.Raycast(ray,out hitInfo)) { Debug.Log(hitInfo.transform.name); } } } }
2.將 ColliderEvent 腳本,掛載到 Main Camera 上,(運(yùn)行,點(diǎn)擊模型后結(jié)果如下)
使用Event Trigger 組件
1.場(chǎng)景內(nèi)添加Event System
2.給 Main Camera 添加 Physics Raycaster 組件
3.新建一個(gè)腳本,命名“Test2.cs”。(代碼如下)
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test2 : MonoBehaviour { private void OnMouseDown() { Debug.Log("OnMouseDown"); } }
4.在Cube 模型上添加EvenTrigger組件
5.點(diǎn)擊 Add New Event Type 按鈕,選擇事件類型,并將 Test2.cs 腳本,添加到場(chǎng)景中,選擇點(diǎn)擊后觸發(fā)的函數(shù)為 OnClickModel()
6.運(yùn)行結(jié)果如下
感謝各位的閱讀!關(guān)于“Unity如何實(shí)現(xiàn)模型點(diǎn)擊事件”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。