Unity UGUi 怎么判断 点击ugui按钮点击事件的抬起和按下

5482人阅读
【Unity】(89)
【UGUI】(7)
using UnityE
using UnityEngine.EventS
using System.C
/// &summary&
/// 脚本位置:UGUI按钮组件身上
/// 脚本功能:实现按钮长按状态的判断
/// 创建时间:日
/// &/summary&
// 继承:按下,抬起和离开的三个接口
public class OnButtonPressed :MonoBehaviour,IPointerDownHandler,IPointerUpHandler,IPointerExitHandler
// 延迟时间
private float delay = 0.2f;
// 按钮是否是按下状态
private bool isDown =
// 按钮最后一次是被按住状态时候的时间
private float lastIsDownT
void Update ()
// 如果按钮是被按下状态
if (isDown) {
// 当前时间 -
按钮最后一次被按下的时间 & 延迟时间0.2秒
if (Time.time - lastIsDownTime & delay) {
// 触发长按方法
Debug.Log(&长按&);
// 记录按钮最后一次被按下的时间
lastIsDownTime = Time.
// 当按钮被按下后系统自动调用此方法
public void OnPointerDown (PointerEventData eventData)
lastIsDownTime = Time.
// 当按钮抬起的时候自动调用此方法
public void OnPointerUp (PointerEventData eventData)
// 当鼠标从按钮上离开的时候自动调用此方法
public void OnPointerExit (PointerEventData eventData)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:660966次
积分:15416
积分:15416
排名:第489名
原创:160篇
转载:12篇
评论:17条给我们留言
地址:福建省晋江市青阳街道洪山路国际工业设计园纳金网
电话: 400-067-3919
(周一到周五, 周六周日休息)
1 第1页 | 共2 页
查看: 14940|回复: 15
最后登录注册时间阅读权限90积分31442
资深设计师, 积分 31442, 距离下一级还需 18558 积分
纳金币32016 精华75
除了在属性面板中手动给Button等添加事件外,终于搞定了用代码添加事件的方法。主要是手动添加太不方便了,而且代码方扩展、维护。创建Canvas、Button什么的在面板里。。。主要贴代码
using UnityE
using System.C
using UnityEngine.E//引用事件命名空间
using UnityEngine.UI;//引用UI命名空间
public class Test : MonoBehaviour
& && &&&// Use this for initialization
& && &&&void Start ()
& && &&&//定义Action,并赋予delegate方法
& && &&&UnityAction&Button& btnActions = new UnityAction&Button&(onClick);
& && &&&//找到Button控件,并订阅事件
& && &&&Button btn = gameObject.GetComponent&Button&();
& && &&&btn.onClick.AddListener(btnActions);
& & void onClick(Object obj)
& && &&&Debug.Log(&button===========&);
& && &&&Debug.Log(&button-----------& + obj.name);
最后登录注册时间阅读权限90积分52044
纳金币16 精华1
现在不是4。5。2版本吗?
最后登录注册时间阅读权限90积分6667
高级设计师, 积分 6667, 距离下一级还需 3333 积分
纳金币2715 精华0
Good to know&&before release !
最后登录注册时间阅读权限90积分5676
高级设计师, 积分 5676, 距离下一级还需 4324 积分
纳金币7264 精华0
Thanks for sharing !
最后登录注册时间阅读权限70积分3595
中级设计师, 积分 3595, 距离下一级还需 1405 积分
纳金币107 精华0
现在不是4。5。2版本吗
最后登录注册时间阅读权限50积分1072
助理设计师, 积分 1072, 距离下一级还需 928 积分
纳金币449 精华0
Learning .....
最后登录注册时间阅读权限10积分38
设计初学者, 积分 38, 距离下一级还需 62 积分
纳金币0 精华0
最后登录注册时间阅读权限20积分150
设计实习生, 积分 150, 距离下一级还需 350 积分
纳金币226 精华0
using UnityE
using System.C
using UnityEngine.E//引用事件命名空间
亲,为什么我也这么写写,他却报错了
Assets/Scripts/Fighting/FightBtShout.cs(14,29): error CS1503: Argument `#1' cannot convert `UnityEngine.Events.UnityAction&UnityEngine.UI.Button&' expression to type `UnityEngine.Events.UnityAction'
using UnityEngine.UI;//引用UI命名空间
public class FightBtShout : MonoBehaviour {
& & & & // Use this for initialization
& & & & void Start ()&&{
& & & & & & & & //定义Action,并赋予delegate方法
& & & & & & & & UnityAction&Button& btnActions = new UnityAction&Button&(OnClick);
& & & & & & & & //找到Button控件,并订阅事件
& & & & & & & & Button btn = gameObject.GetComponent&Button&();
& & & & & & & & btn.onClick.AddListener(btnActions);
& & & & void OnClick(Object obj){
& & & & & & & & Debug.Log (&an&);
& & & &&&switch (obj.name)
& & & & & & & & {
& & & & & & & & case &BtshootOne&:
& & & & & & & & & & & & Debug.Log(&按钮一&);
& & & & & & & & & & & &
& & & & & & & & case &BtshootTwo&:
& & & & & & & & & & & & Debug.Log(&按钮一&);
& & & & & & & & & & & &
& & & & & & & & default:
& & & & & & & & & & & & Debug.Log(&没有&);
& & & & & & & & & & & &
& & & & & & & & & & & & & & & & }
最后登录注册时间阅读权限90积分6799
高级设计师, 积分 6799, 距离下一级还需 3201 积分
纳金币2110 精华0
涨姿势了。。。。。。。。。
最后登录注册时间阅读权限50积分1346
助理设计师, 积分 1346, 距离下一级还需 654 积分
纳金币505 精华0
谢谢指导!&&学习了
1 第1页 | 共2 页
站长推荐 /1
纳金名模第120期花洒3d模型:数量31个,大小为120MB。完全免费下载哦!这样的福利我和我的小伙伴们都惊呆了!!下载地址:
400-067-3919
Powered by - X2.5
Narkii Inc.unity5 ugui 新gui 按钮事件添加 及 代码添加 事件
unity5 ugui 新gui 按钮事件添加 及 代码添加 事件
[摘要:新版unity的ui体系轻易很多,按钮增加事情
能够正在对象中面+ 拖动 须要监听的工具,感到是蛮轻易的。能够间接选中须要履行的public方式,此方式的完成函数若是有须要传的参]
新版unity的ui系统方便不少,按钮添加事件
可以在工具中点+ 拖动 需要监听的对象,感觉是蛮方便的。可以直接选中需要执行的public方法,此方法的实现函数如果有需要传的参数也可以在此面板上设置,也可以通过sendmessage 调用一个没有公开的方法。、
但是我们通过代码动态添加方法,网上很多&UnityAction 委托的实现都无法运行。因为新一代ui的接口修改了。所以只好通过其他方式来实现。
Transform find = transform.Find (&Btn_Emigrated&);
if(find != null) btn_Emigrated = find.GetComponent&Button&();
btn_Emigrated.onClick.AddListener (delegate() {
this.BtnClick_GoToEmigrated (btn_Emigrated);
public void BtnClick_GoToEmigrated(Button sender)
Debug.LogError (& BtnClick & & Emigrated 1&);
在此标记。
感谢关注 Ithao123精品文库频道,是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 IThao123!
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
随着国内互联网的发展,产品经理岗位需求大幅增加,在国内,从事产品工作的大部分岗位为产品经理,其实现实中,很多从事产品工作的岗位是不能称为产品经理,主要原因是对产品经理的职责不明确,那产品经理的职责有哪些,本专题将详细介绍产品经理的主要职责
Swift是Apple在WWDC2014所发布的一门编程语言,用来撰写OS X和iOS应用程序[1]。在设计Swift时.就有意和Objective-C共存,Objective-C是Apple操作系统在导入Swift前使用的编程语言
Swift是供iOS和OS X应用编程的新编程语言,基于C和Objective-C,而却没有C的一些兼容约束。Swift采用了安全的编程模式和添加现代的功能来使得编程更加简单、灵活和有趣。界面则基于广受人民群众爱戴的Cocoa和Cocoa Touch框架,展示了软件开发的新方向。
IThao123周刊关于UGUI实现先选中再点击button触发点击事件的问题_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:55,757贴子:
关于UGUI实现先选中再点击button触发点击事件的问题收藏
我想用ugui实现做一个高亮选框先选中button再按确认键实现button点击事件 要怎么做不知道大家看过暴风魔镜的APP没有 我就想做个它的菜单界面的效果 求高手解答 谢谢
火星时代unity3d,争当游戏大触,月薪过万小意思,手绘技能,概念设计,商业应用一步到位,你与u3d游戏特效设计师只差一步,赶快点击吧!
自己先顶一下!!!
GUIStyle:The name of this GUIStyle. Used for getting them based on name....这个GUIStyle的名字。用于获取基于名字的样式。normal
/ Rendering settings for when the component is displayed normally.用于该组件正常显示时的渲染设置。hover
/Rendering settings for when the mouse is hovering over the control用于当鼠标悬停在控件之上时的渲染设置。active
/Rendering settings for when the control is pressed down.用于当控件被鼠标按下时的渲染设置。 这个也许对楼主有用、
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或Unity3D NGUI 插件如何 制作可拖拽或点击切换状态的按钮?
就是类似图片中的 ON
OFF 的按钮
点击或者拖拽一下 都可以将上的滑条 拖到另一边去,并且ON与OFF 文字会相互切换
以前用 NGUI 做过这种 Toggle Slider,满足题主的所有要求,当时是为了评估 uGUI 时有个参考对象。NGUI 的实现在 GitHub: uGUI 和 NGUI 实现 Toggle Slider 的方式对比:(当时 NGUI 和 uGUI 都是第一次用,所以文档里吐槽 NGUI 的几个点可能不太对,如果谁有兴趣的话欢迎提 issue 或 PR)有图有真相:NGUI 做的版本:uGUI 做的版本:(动图太大就不上传了,在上面的文档里有)(动图太大就不上传了,在上面的文档里有)
那个东西就是一个UISlider,开启OnOff开关,让它只存在2中状态就可以了。Background就是类似这样
TweenLocation or OnDragItem
已有帐号?
无法登录?
社交帐号登录}

我要回帖

更多关于 unity ugui按钮事件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信