Unity 鼠标事件总结(UGUI + 游戏物体)
一、总览表+示例脚本
鼠标事件\ 物体
|
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 + 游戏物体)相关推荐
- 【Unity入门】场景、游戏物体和组件的概念
版权声明:本文为博主原创文章,转载请注明出处. 游戏和电影一样,是通过每一个镜头的串联来实现的,而这样的镜头我们称之为"场景".一个游戏一般包含一个到多个场景,这些场景里面实现了不 ...
- Unity学习笔记——Unity基础一:unity界面、场景、游戏物体、组件等基本概念
一.unity界面 如下图,unity最主要的界面为Scene(场景视图).Hierarchy(层级视图).project(工程视图).Inspector(检视视图) project--工程视图 当前 ...
- Unity中使用Destroy删除游戏物体的大坑
以前使用Destroy删除游戏物体,删了就删了,也没有使用过DestroyImmediate来删除游戏物体 今天使用Destroy却碰到了一个坑,故顺便记录一下 在文章开始前,我们有必要区分一下使用D ...
- Unity Scene为每一个游戏物体进行扩展编辑
2个月前还在忙碌的找实习工作,看见招聘信息上面有一条熟悉扩展Unity编辑器,配合美工编程. 自己动手写完这个代码时候,发现写代码就像弹钢琴多么神奇. TestEdit类: using UnityEn ...
- unity IK初步应用 让游戏物体眼镜对准摄像头
1,首先我首先创建一个Mask,然后选中其头部,只让其操作头部,如下图 2,点击Animator--->Layout--->右边的"+" 号 ,修改名字为Head, ...
- Unity3d鼠标与游戏物体的交互(方法体)
- OnMouseEnter() 当鼠标悬停于该物体上时执行 OnMouseEnter(){}花括号中的代码,鼠标移上去一次就执行一次 - OnMouseExit() 当鼠标移出该游戏物体时执行方法, ...
- Unity3D学习笔记(一):Unity简介、游戏物体、组件和生命周期函数
Project(工程.项目):工程是把游戏开发当前所需要的资源归类管理用的. Console控制台:日志.报错.调试,右上角,消息过滤 Assets:资源,存储游戏中一切用到的资源 Library:临 ...
- UE4学习-鼠标事件(按下、释放、物体抓取、计算重量、触发开门)
文章目录 关键类 鼠标按下.释放事件 物体抓取 计算物体重量 关键类 本篇博文用到的关键类有: UInputComponent 用来绑定鼠标的按下和释放事件 BindAction UPhysicsHa ...
- 【Unity3D】Unity 脚本 ① ( 创建 C# 脚本 | Visual Studio 2019 中打开 C# 脚本 | 编译 C# 脚本 | 挂载 C# 脚本到游戏物体 | 运行脚本 )
文章目录 一.创建 Unity 脚本 二.Visual Studio 2019 中打开 C# 脚本 三.编译 C# 脚本 四.挂载 C# 脚本到游戏物体 GameObject 1.添加组件方式 2.直 ...
最新文章
- 什么是java双亲委派机制
- PAT1046 划拳 (15 分)
- docker swarm MySQL_容器与云|在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理...
- 论一个程序员的自我修养-从一张图片说起
- python 2 类与对象
- 攻防世界 适合做桌面_空间“狭小”的二人世界,适合情侣们做浪漫的事情
- 在Ruby中使用&运算符(new_array- arr&old_Array)创建数组实例
- 引擎设计跟踪(九.6) 地形最近更新
- 6 获取当前模块_python常用模块的常用方法介绍
- pku 3207 Ikki's Story IV - Panda's Trick 2-sat判定是否存在可行解
- LINUX开机自启问题
- 关于内网使用Nginx正向代理发送极光推送
- php 滑块验证,实现一个滑块验证功能
- linux查看psd文件,ImageMagick PSD图形文件处理远程缓冲区溢出漏洞(CVE-2014-1947)
- cmd命令行常用指令
- 阿里云盘 Mac客户端(附mac/win版)v2.1.6中文内测版
- 吃萝卜去口气(口臭)[转]
- 【智能家居平台】天猫精灵 -- 平台剖析
- c语言程序设计第五版课后习题答案谭浩强第八章课后题
- thinkphp5常用函数汇总_THINKSNS常用函数
热门文章
- 企鹅号被扣分了怎么办?喜大普奔!企鹅号信用分可以恢复了
- ubuntu 12.04 NDK + android 4.0.3_r1 编译libffmpeg.so
- 论坛:二维数组中找最大特征数组
- debounce实现 js_如何使用 js 实现一个 debounce 函数
- 硬盘双击无法打开的解决方法
- 最强大脑第八季片头集数说明
- Eclipse 2018-09 (4.9)如何支持Java 11
- 宋宝华- Linux namespace - Docker 背后的故事
- wince大排档学习
- 看不懂,为什么跑出租车的大战送外卖的,没关系,主要是你不理解大数据