Unity實(shí)現(xiàn)模型點(diǎn)擊事件的方法
模型點(diǎn)擊事件監(jiān)聽
觸發(fā)模型點(diǎn)擊事件的必要條件
需要觸發(fā)模型點(diǎn)擊事件的模型身上必須要掛載Collider 組件
方法一
通過 OnMouseDown 函數(shù)監(jiān)聽(只能在PC端有效)
1.在Hierarchy 面板中右鍵,點(diǎn)擊 3D Object->Cube 按鈕,創(chuàng)建一個 Cube 模型

2.新建一個腳本,命名為“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é)果如下)

方法二
通過射線檢測事件監(jiān)聽(所有平臺都可以執(zhí)行,推薦使用這種方式)
1.新建一個腳本,命名為“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.場景內(nèi)添加Event System


2.給 Main Camera 添加 Physics Raycaster 組件

3.新建一個腳本,命名“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 腳本,添加到場景中,選擇點(diǎn)擊后觸發(fā)的函數(shù)為 OnClickModel()

6.運(yùn)行結(jié)果如下

到此這篇關(guān)于Unity模型點(diǎn)擊事件的文章就介紹到這了,更多相關(guān)Unity模型點(diǎn)擊事件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
wpf實(shí)現(xiàn)超低延遲的RTMP或RTSP播放
這篇文章主要為大家詳細(xì)介紹了wpf如何實(shí)現(xiàn)超低延遲的RTMP或RTSP播放,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04
C#進(jìn)階系列 WebApi身份認(rèn)證解決方案推薦:Basic基礎(chǔ)認(rèn)證
下面小編就為大家?guī)硪黄狢#進(jìn)階系列 WebApi身份認(rèn)證解決方案推薦:Basic基礎(chǔ)認(rèn)證。小編覺得挺不錯的,現(xiàn)在分享給大家。給大家一個參考。一起跟隨小編過來看看吧2016-03-03
Unity3D使用Shader實(shí)現(xiàn)腐蝕消失
這篇文章主要為大家詳細(xì)介紹了Unity3D使用Shader實(shí)現(xiàn)腐蝕消失,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02
C#?使用SpecFlow創(chuàng)建BDD測試用例的示例代碼
這篇文章主要介紹了C#?使用SpecFlow創(chuàng)建BDD測試用例,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06
C#實(shí)例化和靜態(tài)類對象調(diào)用對比
這篇文章主要介紹了C#實(shí)例化和靜態(tài)類對象調(diào)用對比,什么時候用實(shí)例化對象,什么時候用靜態(tài)類對象,內(nèi)存和生命周期又是如何,框架本身的回收機(jī)制是什么,下文詳細(xì)解說需要的小伙伴可以參考一下2022-04-04

