【Unity3D】UGUI向导式界面和组件复用
来源:互联网 发布:mac的照片如何导出 编辑:程序博客网 时间:2024/06/02 06:50
如下图:
为了达到不设置这么多个输入框InputField和确定、取消按钮的目的,实现组件复用,并且指导用户完成一行行的输入。因此设置了这个所谓的向导式界面。
整个界面的布置非常简单,如下图所示。布置好之后,同时将各个组件命名,便于在脚本中控制。
至于向导的白色箭头1.png,是一张在Photoshop空白背景下,画的白色箭头。如下图所示,在Rawimage的Texture选择1.png即可。
在空对象UIWizard下,绑定如下的UIWizard.cs。该脚本完成的关键主要是将Text1~3存到一个List,将自增自减变量i与Text1~3的顺序对应起来,并且在结束每次的点击之前移动指针。
using UnityEngine;using UnityEngine.UI;//用到了UGUIusing System.Collections;using System.Collections.Generic;//用到了C#容器类Listpublic class UIWizard : MonoBehaviour{ private int i;//用于记录当前箭头指向哪一行 private List<Text> textList;//用于存放Text1~3的数组 public GameObject cursor;//箭头 public InputField inputfield;//输入框 /*获取Text1~3并且初始化i*/ void Start() { textList = new List<Text>(); textList.Add(GameObject.Find("Canvas/Text1").GetComponent<Text>()); textList.Add(GameObject.Find("Canvas/Text2").GetComponent<Text>()); textList.Add(GameObject.Find("Canvas/Text3").GetComponent<Text>()); i = 0; } /*确定按钮点击事件*/ public void ConfirmButtonOnclick() { if (0 <= i && i < textList.Count)//i的有效范围 { if (inputfield.text.Length > 0)//输入不为空 { /*更新text,并且箭头下移*/ textList[i].text = inputfield.text; inputfield.text = ""; if (i != textList.Count - 1) { cursor.transform.position -= new Vector3(0, 100, 0); i++; } } else { inputfield.placeholder.GetComponent<Text>().text = "输入不能为空"; } } } /*取消按钮*/ public void CancelButtonOnclick() { /*清空输入框,并且箭头上移*/ if (0 < i && i <= textList.Count) { inputfield.text = ""; cursor.transform.position += new Vector3(0, 100, 0); i--; } }}
在Editor中指定好UIWizard.cs各个公有类成员对应的对象,按钮点击事件,上述UI界面则完成。不懂可以参考《【Unity3D】同场景物体传值与Vector》(点击打开链接)和《【Unity3D】场景切换、UGUI组件事件、开始游戏与关闭游戏》(点击打开链接)。
阅读全文
0 0
- 【Unity3D】UGUI向导式界面和组件复用
- [Unity3D]UGUI分辨率自适应的组件和方法
- Unity3D ugui 界面状态控制
- 【Unity3D】UGUI组件的监听
- Unity3d UGUI 界面适配 实例解析 三种适配方式
- Unity3d开发(十六) 重写UGUI组件
- Unity3D-UGUI的Text组件渐变效果
- Htc Vive Sdk(OpenVR),Unity3d 开发,UGUI界面响应
- 【Unity3d】将PSD直接导出成UGUI界面(一)
- 【Unity3d】将PSD直接导出成UGUI界面(二)
- Unity3D 基于UGUI的图文混排组件
- Unity3D UGUI组件的Inspector属性探究(一)--RectTransform
- Unity3D 官方文档 UGUI总览 可互动组件的介绍
- Unity3D 官方文档 UGUI总览 自动布局组件的介绍
- [Unity UGUI]点击和长按组件
- Unity3D界面插件NGUI核心组件说明
- 【UGUI】unity3D中ugui事件
- Unity3D打包apk的主界面和android组件共同显示
- jquery获取当前页面的URL信息
- 如何开发机器学习模型?我们记录下了全过程(机器学习入门第三篇)
- SecureCRT8.0的使用
- bzoj 4975: 区间翻转
- Mac OS X 下安装使用 Docker
- 【Unity3D】UGUI向导式界面和组件复用
- java构造方法、静态变量初始化顺序的小例子
- cocoaPods更新
- 集合第四步: TreeSet比较顺序和比较重复机制
- Thrift 双向通信实现(c++版)
- 七、输入/输出流--iostream简介
- 简单分析HashMap及其线程安全的Map类
- 用大白话聊聊分布式系统
- Windows中,.net framework 3.5安装