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. h5微信分享

    h5分享的步骤(前端需要完成的部分) 1.绑定域名 登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”. 2.引入Js文件 在需要调用JS接口的页面引入如下JS文件,(支持ht ...

  2. React 练习项目,仿简书博客写作平台

    Introduction 技术栈:react + redux + react-router + express + Nginx 练习点: redux 连接 react-router 路由跳转 scss ...

  3. 深入解析Mysql中事务的四大隔离级别及其所解决的读现象

    本文详细介绍四种事务隔离级别,并通过举例的方式说明不同的级别能解决什么样的读现象.并且介绍了在关系型数据库中不同的隔离级别的实现原理. 在DBMS中,事务保证了一个操作序列可以全部都执行或者全部都不执 ...

  4. zabbix自发现item监控

    在zabbix监控中,我们可以通过自带item的可以和自定义key进行监控,但是当所需要的监控项不确定,比如key会根据时间进行变化时,这时候我们就不能把item的key定义死,要通过自发现这个高级功 ...

  5. linux下搭建LJMT(图文版)

    一.  安装VM14 1.1 安装虚拟机vm14(略) 输入序列号:AC5XK-0ZD4H-088HP-9NQZV-ZG2R4(可自行百度) 二. 安装centos详细步骤 2.1安装centos.( ...

  6. Appium+Python+Genymotion ------环境配置

    前言 之前总是在找方向,也研究了很多的工具,终于找到了适合自己的一套,打算把学习的过程做一个记录,给自己加深印象,也希望能给其他人一些帮助. 一.工具准备 1.Appium  //  http://a ...

  7. 从0开始学Git——Git的协同操作

    环境: test_git 目录下有个my-project 版本库 所有命令都在test_git目录下执行 本地协同操作 从远端仓库检出代码,或者克隆一个已有的版本库 拷贝一个已有的仓库 #格式: gi ...

  8. 林大妈的CSS知识清单(一)添加样式

    回顾CSS选择符,学习接入样式的更多方式. 一.选择符 1. 种类 ① 类型选择符:直接的HTML标签名,例如: body.p.div 等: ② 后代选择符:空格,例如: div p 选择div中的所 ...

  9. HandlerMethodArgumentResolver(一):Controller方法入参自动封装器【享学Spring MVC】

    每篇一句 你的工作效率高,老板会认为你强度不够.你代码bug多,各种生产环境救火,老板会觉得你是团队的核心成员. 前言 在享受Spring MVC带给你便捷的时候,你是否曾经这样疑问过:Control ...

  10. swith case判断

    swith case是js中的一种判断方式 应用于变量或表达式在不同值情况下的不同操作,每一种case结束都要加break结束整个判断 var num = 2; switch(num){ case 0 ...