2015-06-22

UGUI 组件

Canvas 画布

The Canvas component represents the abstract space in which the UI is laid out and rendered. All UI elements must be children of a GameObject that has a Canvas component attached. When you create a UI element object from the menu (GameObject > Create UI), a Canvas object will be created automatically if there isn’t one in the scene already.
Canvas组件代表存放和渲染UI控件的空间,所有的UI元素必须是包含Canvas组件对象的子元素,如果单独从菜单中创建一个UI元素,如果Scene场景中没有Canvas,系统会自动为元素创建一个Canvas父对象。

Render Mode:渲染模式

1.ScreenSpace-OverLay:UI覆盖整个屏幕,所有的GameObject对象都在UI的后方(由于UI场景非常大,将GameObject放大才能明显观查到)
 
可以将OverLay渲染模式看做"Screen Space-Camera"渲梁方式集合中的一个对象(其中Render Camera=MainCamera,PlaneDistance=0)
 Pixel Perfect:不使用抗锯齿功能,使每个像素清晰的显示,防止在某些情况下产生的模糊。如果场景中有大量的元素需要缩放,移动,或者包含较精细的动画,不使用Pixel Perfect功能(不禁用抗锯齿功能),可以使动画、移动等平滑。
 Sort Order:排序次序,Sort Order越大,在平面上的显示越靠前;
 
2.ScreenSpace-Camera:用一个像机接收UI内容(把一个含有控件的平面放在距相机一定位置来显示UI,UI和其前后的GameObject对象会互相产生遮挡效果)
 Render Camera:用来渲染UI的Camera(且this.Canvas所含的UI内容只能在Render Camera中才能渲染),即使UI在场景中其它相机的范围内,其它相机也不会渲染;
 Plane Distance:Canvas到相机的垂直距离,Canvas在场景中的尺寸和位置决定于Render Camera 的Field of View 和 Plane Distance,
 Plane Distance更重要的作用是决定了场景中的GameObject对象在UI(this.Canvas所渲染的UI)的前方还是后方;
 Sorting Layer:Canvas所属的层(层的分类在:Menu->Edit->Project Setting->Tags and Layers->Sorting Layers 在SortingLayers中排序越靠下的层,在屏幕上显示越靠前)
 Order in Layer:在所属层中的排序次序,值越大,在所属层中越靠前

 
3.WorldSpace:将UI做为3D场景的一部分,类似gameObject 
 Event Camera:事件相机,UI中的交互事件(如点击,输入等)能且只能被Event Camera执行(在WorldSpace模式下如果UI在Scene场景中的任何像相机范围内,则相机可以观查到UI)
 

Canvas Scaler:画布内容缩放

The Canvas Scaler component is used for controlling the overall scale and pixel density of UI elements in the Canvas. This scaling affects everything under the Canvas, including font sizes and image borders.
Canvas Scaler 组件用来控制画布中全部元素的缩放和像素密度。这个缩放影响画布中的所有元素包括字体大小和图片边框

1.Constant Pixel Size: 确保画布中的元素保持不变的像素大小,不考虑屏幕的尺寸
 Scale Factor(缩放系数):Canvas中的所有元素按Scale Factor进行缩放(Scale FactorScales all UI elements in the Canvas by this factor.)
 Reference Pixels Per Unit(每个单元所引用(包含)的像素数):
 (If a sprite has this ‘Pixels Per Unit’ setting, then one pixel in the sprite will cover one unit in the UI.如果一个精灵(Sprite子图片)有自已的Pixels Per Unit设置,将以精灵自身的设置优先)
2.Scale With Screen Size: 确保画布中的元素和屏幕适配,元素宽度随屏幕宽度缩放,元素高度按元素宽高比随宽度缩放
 Math=0时按宽度缩放,Math=1时按高度缩放
3.Constant Physical Size: 不变的物理大小,不考虑屏幕的尺寸和缩放,使用Constant Physical Size进行布局,无论不同计算机的像素尺寸是多少,图像的物理宽度都是固定的

Graphic Raycaster

?

Image

Image Type:
  Simple:常规缩放(Preserve Aspect:保持宽高比)
  Slice:图片在ImageEditor中修改边框数据后,图片会产生边框
  Tiled:平铺,如果有边框,内部平铺

UGUI-组件的更多相关文章

  1. UGUI 快捷键创建UGUI组件

      使用NGUI的时候还有xxx快捷键创建, spirte,label,button等等. 在UGUI里面的时候好像是没有快捷键的. 不知道以后多久才能有这个功能.  在家里闲无聊的时候写了一个脚本, ...

  2. UGUI组件之快速消息提示(飘字)

    效果预览 使用情景 几乎每一个游戏都会有这种飘字提示,实现起来并不复杂, 我把它做了一个组件. 开箱即可使用,无需二次开发,如果效果不满意,开放源码,方便进行调优. 组件源码 核心代码 每次将飘字的请 ...

  3. Unity3D - UGUI组件的中英文对照

  4. 基于Shader实现的UGUI描边解决方案

    基于Shader实现的UGUI描边解决方案 前言 大扎好,我系狗猥.当大家都以为我鸽了的时候,我又出现了,这也是一种鸽.创业两年失败后归来,今天想给大家分享一个我最近研究出来的好康的,比游戏还刺激,还 ...

  5. Unity3D学习笔记(十九):UGUI、Image、Text、Button

    UGUI:Unity官方最新,与NGUI同源 UI:User Interface(用户的操作界面),图片+文字 UGUI的组件: 1.创建UGUI组件时,会默认创建Canvas(画布)和EventSy ...

  6. Unity3D - UGUI的手动搭建

    了解UGUI组件的搭建方式,有助于搭建我们自己的UI界面. Text 文本 text 是UGUI中的基本控件,在Hierarchyi面板创建一个空物体 - 给这个空物体添加一个Text组件即可实现与t ...

  7. Unity3d UGUI插件之TSTableView

    TSTableView是Tacticsoft工作室开发的一款适用于UGUI的列表(Table)插件,设计灵感来源于iOS/Mac的UITableView,提供高复用.高性能的列表,其主要特点是: 采用 ...

  8. Unity实现滑页嵌套(解决ScrollRect嵌套冲突问题)

    简介 由于项目需要+有网友咨询,所以做了个横向滑页+某一横向滑页中有竖向滑页的demo,实现有点绕弯子,但基本功能还是比较完善,发上来共享一下. 效果 思路 第一步的思路是自己判断触屏拖动位置,然后控 ...

  9. HoloLens开发手记 - Known issues 已知问题

    本文主要提及一份问题清单,这些问题都可能对我们开发HoloLens应用造成困扰. Visual Studio 在使用VS 2015 Update 1连接HoloLens时,可能会有些小问题.但是这些小 ...

  10. C#中的yield return与Unity中的Coroutine(协程)(下)

    Unity中的Coroutine(协程) 估计熟悉Unity的人看过或者用过StartCoroutine() 假设我们在场景中有一个UGUI组件, Image: 将以下代码绑定到Image using ...

随机推荐

  1. 解决myeclipse过期问题

    一般myeclise使用期限为30天,超过之后,会频繁的提醒你,购买软件,很讨厌,有个这个小工具,,以后再也不怕啦!!! 使用方法: 1:将这个类导入到myeclipse包中 2:运行main方法,提 ...

  2. Linux源码的目录结构

    Linux用来支持各种体系结构的源代码包含大约4500个C语言程序,存放在270个左右的子目录下,总共大约包含200万行代码,大概占用58MB磁盘空间.  源代码所有在目录:/usr/src/linu ...

  3. 论js中的prototype

    今天在阅读代码时,碰到了prototype //判断是否是数组function isArray(obj) { return Object.prototype.toString.call(obj) == ...

  4. box-shadow学习笔记

    CSS3 box-shadow属性的简单学习笔记 语法格式: box-shadow: h-shadow v-shadow blur spread color inset; 值 描述 h-shadow ...

  5. ubuntu系统安装jdk

    1,首先到jdk官网下载jdk. 2,然后再把下载下来的jdk包(jdk-8u20-linux-i586.tar.gz),然后打开shell,进入超级管理员权限,进入刚才下载的目录(cd 目录名),然 ...

  6. SQLServer 2008数据库查看死锁、堵塞的SQL语句

      --每秒死锁数量 SELECT * FROM sys.dm_os_performance_counters WHERE counter_name LIKE 'Number of Deadlocks ...

  7. Android Metro风格的Launcher开发系列第一篇

    前言:从毕业到现在已经三年多了,回忆一下这三年基本上没有写过博客,总是觉得忙,没时间写,也觉得写博客没什么大用.但是看到很多大牛们都在写博客,分享自己的东西,所以嘛本着向大牛看齐,分享第一,记录第二的 ...

  8. ###《Machine Learning》by Andrew NG

    点击查看Evernote原文. #@author: gr #@date: 2014-10-17 #@email: forgerui@gmail.com Fundamental 一. 矩阵的迹.秩 矩阵 ...

  9. IOS的segmentedControl(分段器控件)的一些常用属性

    #pragma mark - 创建不同的分段器 //初始化方法:传入的数组可以是字符串也可以是UIImage对象的图片数组 UISegmentedControl *mysegmented = [[UI ...

  10. 关于ios的手势识别(GestureRecognizers)讲解

    大家都知道,苹果的设备,不管是mac机器还是iPhone或iad,都支持多点触控,进而延伸了多种手势识别的功能.这为用户带来了很大的便携性和多样灵活性,极大的方便了用户的使用.足以见手势识别(Gest ...