我是靠谱客的博主 干净麦片,最近开发中收集的这篇文章主要介绍Unity 滑鼠 ( 鼠標, Mouse ) 監聽事件 ( Event) 的三種方法前言:方法一:方法二:方法三:執行結果:寫在最後:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言:

我看網路其他文章都只有展示其中一種方法,而且每種方法都很零散,所以我今天要集大成,造福群眾。好了,廢話不多說,下面為大家展示 Unity 滑鼠 ( 鼠標, Mouse ) 進入物件時的三種監聽方法,每種各有優缺點,請自行參考與使用。

當然簡單的滑鼠進入監聽肯定滿足不了你,你可能還需要監聽 點擊 (Click), 拖拉 ( Drag ), 離開 ( Exit )… 等等高級操作,所以我下面提供 API 網址給大家,讓你們創造更多美好的事物。

API : https://docs.unity3d.com/ScriptReference/EventSystems.EventTrigger.html

方法一:

這是用繼承的方式,只能對掛載的 Game Object 有效果

using UnityEngine;
using UnityEngine.EventSystems;
public class NewBehaviourScript : MonoBehaviour, IPointerEnterHandler
{
public void OnPointerEnter (PointerEventData p)
{
Debug.Log ("Enter Position : " + p.position);
}
}

方法二:

該好處是可以遠程操控其他 Game Object ,使用起來比 ” 方法一 ” 更加靈活。

需要先在外部加入 Event Trigger 元件,如下圖:

这里写图片描述

using UnityEngine;
using UnityEngine.EventSystems;
public class NewBehaviourScript : MonoBehaviour {
public void OnMouseEnter(BaseEventData data)
{
PointerEventData p = data as PointerEventData;
Debug.Log("Enter Position : " + p.position);
}
}

方法三:

與 ” 方法二 ” 功能相同,不需要從外部加入 Event Trigger 元件,而且可以控制更多細節,程式碼當然也比較多。

using UnityEngine;
using UnityEngine.EventSystems;
public class NewBehaviourScript : MonoBehaviour
{
public GameObject target;
void Start ()
{
EventTrigger trigger = target.gameObject.AddComponent<EventTrigger> ();
EventTrigger.Entry entry = new EventTrigger.Entry ();
entry.eventID = EventTriggerType.PointerEnter;
entry.callback.AddListener ((data) => {
OnPointerEnter ((PointerEventData)data);
});
trigger.triggers.Add (entry);
}
public void OnPointerEnter (PointerEventData p)
{
Debug.Log ("Enter Position : " + p.position);
}
}

執行結果:

當然啦,三種方法結果都相同,只要你的滑鼠進入物件範圍內,就會類似打印下面這種結果:

这里写图片描述

寫在最後:

祝你們玩得開心,如果你們賺錢了記得分我一點。

最后

以上就是干净麦片为你收集整理的Unity 滑鼠 ( 鼠標, Mouse ) 監聽事件 ( Event) 的三種方法前言:方法一:方法二:方法三:執行結果:寫在最後:的全部内容,希望文章能够帮你解决Unity 滑鼠 ( 鼠標, Mouse ) 監聽事件 ( Event) 的三種方法前言:方法一:方法二:方法三:執行結果:寫在最後:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部