热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

unity拖拽功能_【知识分享】Unity弹窗关闭按钮的关闭事件

关注了再走呗~前言开发中最深的感受,是很多功能都存在多种实现方式,很多时候我们要做的,主要在于实际应用时,如何

关注了再走呗~21ba1cb391d3dc42b53c7d45a0d3d92f.png22688a6cf719b4d127e98ff49e4addf1.gif


前言

开发中最深的感受,是很多功能都存在多种实现方式,很多时候我们要做的,主要在于实际应用时,如何权衡利弊取最优解。

Unity作为拥有一套完美的图形化界面的游戏引擎,给开发提供了更多的可能性。

下面使用三种方式来实现弹窗的关闭按钮的关闭事件来感受一下:

  • 图形界面实现,无代码

  • 纯代码实现

  • 图形界面+代码实现

7270bfa58b620cdc044f38aa3e5120aa.gif


图形界面实现,无代码

  1. unity中选中关闭按钮,在Inspector面板中找到On Click(),点击+c43ea797ab182399d99831b8c97b52b7.png

  1. 将对话框对象拖拽过来(即图中Modal位置),并在function中选择GameObject->SetActive,此时出现多选框,不勾选即为false87156692ec09f83a71c75503e62a7bb8.png

  • 直接使用Unity内置的SetActive()函数,不需要单独写代码,即可方便快捷地为按钮绑定监听

  • 适用场景:对于按钮的监听没有复杂要求,如该示例中只需要关闭对话框


纯代码实现

  1. 为对话框建立脚本test.cs,编写关闭函数Close()

// 模态框关闭public void Close(){    this.gameObject.SetActive(false);}

  1. Start()中查找按钮并绑定点击事件

private Button closeBtn; // 关闭按钮// Start is called before the first frame updatevoid Start(){ closeBtn = transform.Find("Frame/Header/CloseBtn").GetComponent(); closeBtn.onClick.AddListener(Close);}

  • 按钮通过对象位置查找,需要保证一定的结构,适用于需要一次性绑定多个按钮的情况

  • 手动为按钮绑定监听事件,可灵活处理事件,如当事件需要参数时


图形界面+代码实现

  1. 为对话框建立脚本Modal.cs,编写关闭函数Close()

// 模态框关闭public void Close(){this.gameObject.SetActive(false);    //Destroy(this.gameObject);}

  1. Unity中选中关闭按钮,在Inspector面板中找到On Click(),点击+

c43ea797ab182399d99831b8c97b52b7.png

  1. 将对话框对象拖拽过来(即图中Modal位置),并在function中选择你的脚本及关闭函数

117eda4296022c537c8c8b8ea6ea150c.png

  • 函数可独立存在,哪个按钮需要就给哪个绑定即可

  • 适用场景:函数需要被到处调用时,可模块化处理,方便解耦

以上评价仅供参考,拙见随时变化1e391e35b585c403c411c8ba82f9be47.png




推荐阅读
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • FineReport平台数据分析图表显示部分系列接口的应用场景和实现思路
    本文介绍了FineReport平台数据分析图表显示部分系列接口的应用场景和实现思路。当图表系列较多时,用户希望可以自己设置哪些系列显示,哪些系列不显示。通过调用FR.Chart.WebUtils.getChart("chartID").getChartWithIndex(chartIndex).setSeriesVisible()接口,可以获取需要显示的系列图表对象,并在表单中显示这些系列。本文以决策报表为例,详细介绍了实现方法,并给出了示例。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
author-avatar
手机用户2502930623
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有