栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

Unity 鼠标事件总结(UGUI + 游戏物体)

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity 鼠标事件总结(UGUI + 游戏物体)

一、总览表+示例脚本
鼠标事件 物体UGUI3D游戏物体
移入OnPointerEnterOnMouseEnter
移出OnPointerExitOnMouseExit
悬置可用OnPointerEnter+OnPointerExit模拟悬置功能OnMouseOver
点击OnPointerClick可用OnMouseDown替代此功能
按下OnPointerDownOnMouseDown
抬起OnPointerUpOnMouseUp

随便一个UGUI组件(注意引用UnityEngine.EventSystems命名空间),一个3D物体(带碰撞体),分别在它们身上加以下两个脚本:

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class TestUnityMouseEvent_UGUI : MonoBehaviour,IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler, IPointerDownHandler, IPointerUpHandler
{
    public void OnPointerEnter(PointerEventData eventData)    
    {
        Debug.Log("UGUI部件上,鼠标【移入】");
    }
    public void OnPointerExit(PointerEventData eventData)
    {
        Debug.Log("UGUI部件上,鼠标【移出】");
    }


    //没有“悬置”,可用OnPointerEnter+OnPointerExit模拟,例如:鼠标放在角色卡片,显示角色的生命值、攻击力、防御力


    public void OnPointerClick(PointerEventData eventData)
    {
        Debug.Log("UGUI部件上,鼠标【点击】");
    }
    public void OnPointerDown(PointerEventData eventData)
    {
        Debug.Log("UGUI部件上,鼠标【按下】");
    }
    public void OnPointerUp(PointerEventData eventData)
    {
        Debug.Log("UGUI部件上,鼠标【抬起】");
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestUnityMouseEvent_3dGameObject : MonoBehaviour
{

    public void OnMouseEnter()
    {
        Debug.Log("立方体上,鼠标【移入】");
    }
    public void OnMouseExit()
    {
        Debug.Log("立方体上,鼠标【移出】");
    }
    public void OnMouseOver()
    {
        Debug.Log("立方体上,鼠标【悬置】");
    }


    //没有“点击”,一般用OnMouseDown来模拟


    public void OnMouseDown()
    {
        Debug.Log("立方体上,鼠标【按下】");
    }
    public void OnMouseUp()
    {
        Debug.Log("立方体上,鼠标【抬起】");
    }
}

二、官方API 1、UGUI里方法:它们是UnityEngine事件系统,功能接口的实现方法

2、3D 游戏物体里方法:它们是Monobehaviour类的“消息”


三、补充(略,没时间写了) 1、UGUI:用OnPointerEnter+OnPointerExit模拟悬置功能 2、3D游戏物体:用OnMouseDown实现点击功能、双击功能 3、UGUI:有现成的“EventTrigger”组件,如果不想手动实现,鼠标事件接口,可直接加这个组件
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/900945.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号