一、总览表+示例脚本

鼠标事件\ 物体 UGUI 3D游戏物体
移入 OnPointerEnter OnMouseEnter
移出 OnPointerExit OnMouseExit
悬置 可用OnPointerEnter+OnPointerExit模拟悬置功能 OnMouseOver
点击 OnPointerClick 可用OnMouseDown替代此功能
按下 OnPointerDown OnMouseDown
抬起 OnPointerUp OnMouseUp

随便一个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”组件,如果不想手动实现,鼠标事件接口,可直接加这个组件

Unity 鼠标事件总结(UGUI + 游戏物体)相关推荐

  1. 【Unity入门】场景、游戏物体和组件的概念

    版权声明:本文为博主原创文章,转载请注明出处. 游戏和电影一样,是通过每一个镜头的串联来实现的,而这样的镜头我们称之为"场景".一个游戏一般包含一个到多个场景,这些场景里面实现了不 ...

  2. Unity学习笔记——Unity基础一:unity界面、场景、游戏物体、组件等基本概念

    一.unity界面 如下图,unity最主要的界面为Scene(场景视图).Hierarchy(层级视图).project(工程视图).Inspector(检视视图) project--工程视图 当前 ...

  3. Unity中使用Destroy删除游戏物体的大坑

    以前使用Destroy删除游戏物体,删了就删了,也没有使用过DestroyImmediate来删除游戏物体 今天使用Destroy却碰到了一个坑,故顺便记录一下 在文章开始前,我们有必要区分一下使用D ...

  4. Unity Scene为每一个游戏物体进行扩展编辑

    2个月前还在忙碌的找实习工作,看见招聘信息上面有一条熟悉扩展Unity编辑器,配合美工编程. 自己动手写完这个代码时候,发现写代码就像弹钢琴多么神奇. TestEdit类: using UnityEn ...

  5. unity IK初步应用 让游戏物体眼镜对准摄像头

    1,首先我首先创建一个Mask,然后选中其头部,只让其操作头部,如下图 2,点击Animator--->Layout--->右边的"+" 号  ,修改名字为Head, ...

  6. Unity3d鼠标与游戏物体的交互(方法体)

    - OnMouseEnter() 当鼠标悬停于该物体上时执行 OnMouseEnter(){}花括号中的代码,鼠标移上去一次就执行一次 - OnMouseExit() 当鼠标移出该游戏物体时执行方法, ...

  7. Unity3D学习笔记(一):Unity简介、游戏物体、组件和生命周期函数

    Project(工程.项目):工程是把游戏开发当前所需要的资源归类管理用的. Console控制台:日志.报错.调试,右上角,消息过滤 Assets:资源,存储游戏中一切用到的资源 Library:临 ...

  8. UE4学习-鼠标事件(按下、释放、物体抓取、计算重量、触发开门)

    文章目录 关键类 鼠标按下.释放事件 物体抓取 计算物体重量 关键类 本篇博文用到的关键类有: UInputComponent 用来绑定鼠标的按下和释放事件 BindAction UPhysicsHa ...

  9. 【Unity3D】Unity 脚本 ① ( 创建 C# 脚本 | Visual Studio 2019 中打开 C# 脚本 | 编译 C# 脚本 | 挂载 C# 脚本到游戏物体 | 运行脚本 )

    文章目录 一.创建 Unity 脚本 二.Visual Studio 2019 中打开 C# 脚本 三.编译 C# 脚本 四.挂载 C# 脚本到游戏物体 GameObject 1.添加组件方式 2.直 ...

最新文章

  1. 什么是java双亲委派机制
  2. PAT1046 划拳 (15 分)
  3. docker swarm MySQL_容器与云|在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理...
  4. 论一个程序员的自我修养-从一张图片说起
  5. python 2 类与对象
  6. 攻防世界 适合做桌面_空间“狭小”的二人世界,适合情侣们做浪漫的事情
  7. 在Ruby中使用&运算符(new_array- arr&old_Array)创建数组实例
  8. 引擎设计跟踪(九.6) 地形最近更新
  9. 6 获取当前模块_python常用模块的常用方法介绍
  10. pku 3207 Ikki's Story IV - Panda's Trick 2-sat判定是否存在可行解
  11. LINUX开机自启问题
  12. 关于内网使用Nginx正向代理发送极光推送
  13. php 滑块验证,实现一个滑块验证功能
  14. linux查看psd文件,ImageMagick PSD图形文件处理远程缓冲区溢出漏洞(CVE-2014-1947)
  15. cmd命令行常用指令
  16. 阿里云盘 Mac客户端(附mac/win版)v2.1.6中文内测版
  17. 吃萝卜去口气(口臭)[转]
  18. 【智能家居平台】天猫精灵 -- 平台剖析
  19. c语言程序设计第五版课后习题答案谭浩强第八章课后题
  20. thinkphp5常用函数汇总_THINKSNS常用函数

热门文章

  1. 企鹅号被扣分了怎么办?喜大普奔!企鹅号信用分可以恢复了
  2. ubuntu 12.04 NDK + android 4.0.3_r1 编译libffmpeg.so
  3. 论坛:二维数组中找最大特征数组
  4. debounce实现 js_如何使用 js 实现一个 debounce 函数
  5. 硬盘双击无法打开的解决方法
  6. 最强大脑第八季片头集数说明
  7. Eclipse 2018-09 (4.9)如何支持Java 11
  8. 宋宝华- Linux namespace - Docker 背后的故事
  9. wince大排档学习
  10. 看不懂,为什么跑出租车的大战送外卖的,没关系,主要是你不理解大数据