热门标签 | 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




推荐阅读
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社区 版权所有