1.Image组件—“Source Image”,Set Native Size.

2.Image组件—“Image Type”——Sliced

编辑要放大缩小的图片,Sprite Editor,采用九宫格切图。

3.创建空物体(作为父物体),添加Componment—Layout—Grid Layout Group(是下面的子物体自动排列)

创建空物体和创建Panel作为父物体是由区别的!

4.锚点问题,是GUI中容易忽视但却十分重要的点。

5.Prefabs的有效使用,后期通过更改Prefabs来进行完整的映射修改。

6.滚动图片列表的制作

(1)选项卡图标排列整齐

(2)创建一个Image组件—“背景图”,命名为ScrollPanel(作为父物体,作为Mask),此时将选项卡托至此背景图下作为子物体。

(3)在“背景图”上添加“Scroll Rect”滑动组建,Content对象为选项卡图标集合,来控制子物体。

(4)在“背景图”上添加"Mask"组建。

(5)按页数进行滑动(分页)脚本

(6)单选按钮,进入制定页面,并与鼠标滑动脚本相关联。

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI; public class LevelButtonScrollRect : MonoBehaviour ,IBeginDragHandler,IEndDragHandler{ // Use this for initialization
private ScrollRect scrollRect;
private float[] pageArrayFloats = new[] {, 0.33333f, 0.66666f, };
void Start ()
{
scrollRect = GetComponent<ScrollRect>();
} // Update is called once per frame
void Update () { }
public void OnBeginDrag(PointerEventData eventData)
{ }
public void OnEndDrag(PointerEventData eventData)
{
//Vector2 offsetTemp = scrollRect.normalizedPosition;
float offsetTemp = scrollRect.horizontalNormalizedPosition;
print(offsetTemp);
}
}

父物体添加过"ToggleGroup"组件

 using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI; public class LevelButtonScrollRect : MonoBehaviour ,IBeginDragHandler,IEndDragHandler{ // Use this for initialization
private ScrollRect scrollRect;
private float[] pageArrayFloats = new[] {, 0.33333f, 0.66666f, };
private float targetHorizontalPosition = ; //默认为第一页
private bool isDrag = false;
public float speed = 5f;
void Start ()
{
scrollRect = GetComponent<ScrollRect>(); //寻找组件,物体间的通信
} // Update is called once per frame
void Update () {
if (isDrag==false)
{
scrollRect.horizontalNormalizedPosition = Mathf.Lerp(scrollRect.horizontalNormalizedPosition,
targetHorizontalPosition, speed * Time.deltaTime);
}
} public void OnBeginDrag(PointerEventData eventData)
{
isDrag = true;
} public void OnEndDrag(PointerEventData eventData)
{
isDrag = false;
float posX = scrollRect.horizontalNormalizedPosition;
int index = ;
float offset = Mathf.Abs(pageArrayFloats[index] - posX);
for (int i = ; i < pageArrayFloats.Length; i++)
{
float offsetTemp = Mathf.Abs(pageArrayFloats[i] - posX);
if (offsetTemp < offset)
{
index = i;
offset = offsetTemp;
}
} //哪一页的位置与当前页的位置差最小,就定在哪一页上
//scrollRect.horizontalNormalizedPosition = pageArrayFloats[index];
targetHorizontalPosition = pageArrayFloats[index];
}
}
//注:最后一次鼠标滑动的位置是确定的,让这个位置与每一页的位置(4页的位置)比较,差值最小的,则固定在(4页位置)中的哪一页上
//多次判断语句,用到for循环(特别是for{if(){}})

UGUI_关卡选项界面的更多相关文章

  1. android判断adb调试是否打开及代码跳转到开发者选项界面

    boolean enableAdb = (Settings.Secure.getInt(getContentResolver(), Settings.Secure.ADB_ENABLED, 0) &g ...

  2. ubuntu和windows系统双系统的开机选项界面有很多无关选项

    我的电脑是双系统,在进入系统选项的时候有很多无关的选项, 例如: 解决的方法是在终端输入 sudo gedit /boot/grub/grub.cfg 把文件多余的开机选项删除例如: 保存就可以,开机 ...

  3. 在iOS应用程序中打开设备设置界面及其中某指定的选项界面

    摘自:http://stackoverflow.com/questions/8246070/ios-launching-settings-restrictions-url-scheme [[UIApp ...

  4. CCScrollView 实现帮助界面、关卡选择

    本文出自[无间落叶]:http://blog.leafsoar.com/archives/2013/07-27.html 本文介绍了 CCScrollView 来编写帮助界面和关卡选择界面的方法,在编 ...

  5. 吐槽版︱MRO-Microsoft R Open快捷键+界面识别+功能设置

    下载了之后,发现连运行(RUN键)在哪都不知道,蒙逼的在哪倒弄半天,都执行不了...问了别人,都说"ctrl+enter",但是我的电脑执行不了,于是今天就狠狠的一个一个按钮的点一 ...

  6. 不同版本的IDE ,对应的选项 有变化

    xx.dproj对应的项目级选项 也不同,所以,要分别保存为不同的文件. 如果不同的IDE,打开同一个 .dproj文件,会因为 选项界面的选项不同,提示一些错误.

  7. 【比赛打分展示双屏管理系统-专业版】Other.ini 配置文件解读以及排行榜界面及专家评语提交展示等具体配置

    第一个问题:Other.ini配置文件的解读: 在软件根目录下,找到Other.ini配置文件,打开如下: 配置文件解读: iOrderIDOrXSID:默认为0,按照软件 选项/排行榜和奖项 的设置 ...

  8. 安卓界面之Viewpager和Tablayout实现滑动界面

    摘要:六部实现选项卡界面 一. 在gradle文件添加以下代码: implementation 'com.android.support:design:28.0.0' 在gradle文件添加以上代码后 ...

  9. android的系统设置界面

    Intent 的 意图: Intent intent = new Inetnt(Setings); Setings:   1. ACTION_ACCESSIBILITY_SETTINGS : // 跳 ...

随机推荐

  1. Redis回顾

    之前有两篇文章着重介绍了redis集群的搭建和redis与spring的整合,一个月过去了,现在有些忘记了,今天又拿过来稳固一下,发现有很多的东西都忘记了. 资料汇总下载 首先安装ruby环境 安装过 ...

  2. docker配置国内镜像地址

    docker的官方镜像站被大天朝强了,今天发现阿里有镜像加速这个功能,目前好像是在公测中,废话不多说,接下来告诉你怎么操作. 点击进入阿里镜像库 https://cr.console.aliyun.c ...

  3. Selenium+java - Page Object设计模式

    前言 Page Object(页面对象)模式,是Selenium实战中最为流行,并且被自动化测试同学所熟悉和推崇的一种设计模式之一.在设计测试时,把页面元素定位和元素操作方法按照页面抽象出来,分离成一 ...

  4. 如何用python进行邮件发送

    使用Python调用邮件服务器发送邮件,使用的协议是SMTP(Simple Mail Transfer Protocol),下图为使用TCP/IP基于SMTP发送邮件的过程示意图: SMTP协议工作原 ...

  5. 如何:从 bool? 安全地强制转换为 bool(C# 编程指南)

    bool? 可以为 null 的类型可以包含三个不同的值:true.false 和 null.因此,bool? 类型不能用于条件语句,如 if.for 或 while.例如,此代码无法编译,并将报告编 ...

  6. Selenium + python 测试环境搭建

    Windows平台(py3 已经自带了工具包) 准备工具: python.setuptools(python工具基础包).pip(python安装包管理工具) 安装步骤: 1.python安装,运行e ...

  7. Linux任务调度(8)

    crond任务调度: 是指系统在某个时间执行特定的命令或程序. 分类:1.系统工作,有些重要的工作必须周而复始地执行,如病毒扫描等:2.个别用户工作,个别用户可能希望执行某些程序,如mysql数据库备 ...

  8. Java网络编程 -- NIO非阻塞网络编程

    从Java1.4开始,为了替代Java IO和网络相关的API,提高程序的运行速度,Java提供了新的IO操作非阻塞的API即Java NIO.NIO中有三大核心组件:Buffer(缓冲区),Chan ...

  9. 简单的JavaScript字符串加密解密

    简单的JavaScript字符串加密解密 <div> <input type="text" id="input" autofocus=&quo ...

  10. 点击任意位置关闭(CocosCreator)

    推荐阅读:  我的CSDN  我的博客园  QQ群:704621321  我的个人博客       今天,接触到一个新功能,当弹出某个弹框时,需要点击除弹框的剩余任意位置,来关闭该弹框,例如:当红框内 ...