【Unity3D】对话框、隐藏与显示、拖拽
来源:互联网 发布:免费下载淘宝返还网 编辑:程序博客网 时间:2024/06/08 07:23
对话框在任何一个地方都随处可见,在游戏里面也肯定不例外啊,那么在Unity3D如何利用UGUI实现一个对话框呢?并且这个对话框可以任意拖拽,更重要的是,我可以想让它显示就显示,隐藏就隐藏,就是一个模态框Modal的样子,如下图所示:
其实也并不难啊,首先是UI的布置,具体可以参考《【Unity3D】公告栏与开始界面的布置》(点击打开链接)这里就不再赘述了,在Canvas上面,有一个Button、一个Text(并且改名为notice)作提示信息,还有一个image也就是这个对话框,上面有2个text,2个button。如下图所示。
之后我们编写如下的脚本,赋予image,怎么写脚本,怎么赋予对象在《【Unity3D】Helloworld》(点击打开链接)说过了,这里不再赘述了。
using UnityEngine;using UnityEngine.UI;//犹如我们要获取一个text并操作,所以需要这个头文件using System.Collections;public class image : MonoBehaviour{ GameObject text;//获取notice提示文本,存在这个变量里面进行操作 public static Vector3 vec3, pos;//用于存放坐标,其变量类型也是Vector3,从官方文档抄来的,我也不知道为什么 //初始化函数 void Start() { text = GameObject.Find("notice");//获取提示文本 text.SetActive(false);//让提示文本隐藏 gameObject.SetActive(false);//让自己隐藏,也就是这个image } // Update is called once per frame void Update() { } //按下鼠标将会被触发的事件 public void PointerDown() { vec3 = Input.mousePosition;//获取当前鼠标位置 pos = transform.GetComponent<RectTransform>().position;//获取自己所在的位置 } //鼠标拖拽时候会被触发的事件 public void Drag() { Vector3 off = Input.mousePosition - vec3; //此处Input.mousePosition指鼠标拖拽结束的新位置 //减去刚才在按下时的位置,刚好就是鼠标拖拽的偏移量 vec3 = Input.mousePosition;//刷新下鼠标拖拽结束的新位置,用于下次拖拽的计算 pos = pos + off;//原来image所在的位置自然是要被偏移的 transform.GetComponent<RectTransform>().position = pos;//直接将自己刷新到新坐标 } //此函数接口将赋予给“弹出对话框”按钮的onClick事件 public void onShow() { gameObject.SetActive(true);//显示自己 } //此函数接口将赋予给“确认”按钮的onClick事件 public void onOK() { text.SetActive(true);//让提示文本显示 GameObject.Find("notice").GetComponent<Text>().text = "你点击了确定!";//并更改内容 gameObject.SetActive(false);//让自己隐藏 } //此函数接口将赋予给“取消”按钮的onClick事件 public void onCancel() { text.SetActive(true);//让提示文本显示 GameObject.Find("notice").GetComponent<Text>().text = "你点击了取消!";//并更改内容 gameObject.SetActive(false);//让自己隐藏 }}之后,我们将对这个image设置一个鼠标按下事件和鼠标拖拽事件,如下图所示。
之后和《【Unity3D】场景切换、UGUI组件事件、开始游戏与关闭游戏》(点击打开链接)一样,在Pointer Down事件中指明函数是image中的PointerDown,Drag就是image.Drag,如下图所示:
最后,对于其余各个Button指明相应的onClick事件,保存场景,发布,完成!
1 0
- 【Unity3D】对话框、隐藏与显示、拖拽
- Unity3D中隐藏与显示物体
- Android的对话框显示与隐藏
- Unity3D中隐藏与显示物体的方法
- Unity3D中隐藏与显示物体的一些操作
- Unity3d动态显示/隐藏GUI
- Unity3D 设置GameObjet 的隐藏和显示
- unity3d中让物体显示和隐藏
- unity3d中隐藏/显示物体方法总结
- unity3d中隐藏/显示物体方法总结
- unity3d中让物体显示和隐藏
- 隐藏显示在任务栏中的对话框程序
- 隐藏显示在任务栏中的对话框程序
- 全屏显示对话框,(隐藏任务栏)
- MFC对话框隐藏及显示居中
- div隐藏与显示
- DIV显示与隐藏
- div 显示与隐藏
- Crossing River
- 正则表达式中的贪婪与非贪婪模式
- JS实现全选、全不选的email效果
- fragment 向所属的activity传值的时候
- 输出和输入中%*c或者%*s有什么作用
- 【Unity3D】对话框、隐藏与显示、拖拽
- 8皇后问题的传统解决方法
- 书本整理
- nim游戏详解(易懂)
- OpenCV实现图像识别
- 递归和尾递归
- HTC VIVE 常见问题集合
- GitBash基本操作
- android 悬浮窗口的权限