最近想写一套关于UGUI所有控件的基础使用教程系列,主要是根据本人的使用心得以及部分测试附带字面翻译来写的,所以其中可能难以避免会有不正确的地方。

好了进入主题,既然是第一篇,我觉得我有必要先介绍一下UGUI必不可缺的两个组件:Canvas和EventSystem

事实上在场景中第一次创建UGUI控件的时候,这两个物体都会自动添加到场景中,当然,必不可缺的不是这两个物体,而是他们身上挂载的组件。

一、Canvas作为所有UGUI控件的父级,他管理着下属所有控件的布局。

Canvas组件:

Render Mode(渲染模式):这里一般选择Screen Space - Camera,类似于NGUI的方式用特定的UI摄像机渲染UI,这种渲染模式个人觉得是最佳的,他完全将场景物体和UI进行了分类管理,使得后期开发更加的醒目和易于管理。

Render Camera(渲染相机):设置好独立相机渲染模式,这里为其指定一个渲染UI的相机,该相机的属性要做一些必要的调动。

Clear Flags设置为Depth only(只渲染深度),Culling Mask只保留UI层,Projection设置为Orthographic(正交模式),Depth深度的值必须大于场景主摄像机的值,这样UI才会一直保持在场景物体之上。

Canvas Scaler组件:

Ui Scale Mode(UI缩放模式):也就是UI在自适应时的缩放方式,这里选择第二种方式跟随屏幕缩放。

Reference Resolution(参照分辨率):一般设置为1920*1080,当下主流的最佳分辨率,UI整体将根据16:9的方式适应缩放。

Graphic Raycaster组件:

该组件作为UGUI开启射线投射必不可缺的组件,其属性我们就不用去动了,保持初始值即可。

二、EventSystem作为的是整个UGUI的事件系统(当然他也可以分配非UI物体的事件)。

Event System组件:事件获取与分发必不可缺的组件

Standalone Input Module组件:标准输入模块

Touch Input Module组件:触摸输入模块

这三个组件都是必不可缺的,没有必要的话,我们不必去改动其属性,保持初始值即可。

完成了这两步,接下来就可以进行UGUI界面的开发了。

Unity引擎GUI之Canvas和EventSystem的更多相关文章

  1. Unity引擎GUI之Slider和Scrollbar

    Slider(滑动条):是一个主要用于形象的拖动以改变目标值的控件,他的最恰当应用是用来改变一个数值,最大值和最小值自定义,拖动滑块可在此之间改变,例如改变声音大小. Scrollbar(滚动条):是 ...

  2. Unity引擎GUI之Button

    UGUI Button,可以说是真正的使用最广泛.功能最全面.几乎涵盖任何模块无所不用无所不能的组件,掌握了它的灵巧使用,你就几乎掌握了大半个UGUI! 一.Button组件: Interactabl ...

  3. Unity引擎GUI之Image

    UGUI的Image等价于NGUI的Sprite组件,用于显示图片. 一.Image组件: Source Image(图像源):纹理格式为Sprite(2D and UI)的图片资源(导入图片后选择T ...

  4. Unity引擎GUI之Input Field

    InputField 文本输入组件,本文练习InputField的属性及事件 一.属性 1 Interactable: 是否禁用 Transition:过渡方式 Normal Color 正常的未有任 ...

  5. Unity引擎GUI之Text

    Text 文本 要显示的字符串. Font 字体 Font Style 加粗与倾斜 Font Size 字体大小 Line Spacing 行距,文本行之间的间距 Rich Text 勾选后,想要单独 ...

  6. 游戏引擎/GUI的设计与实现-序

    几年前写<嵌入式GUI FTK设计与实现>,没写几篇就停止更新了.当时自己研究过MicroWindows, X Window, DirectFB, GTK+和Android的GUI,又写过 ...

  7. UGUI之Canvas和EventSystem

    先介绍一下UGUI必不可缺的两个组件:Canvas和EventSystem 事实上在场景中第一次创建UGUI控件的时候,这两个物体都会自动添加到场景中,当然,必不可缺的不是这两个物体,而是他们身上挂载 ...

  8. 盛大游戏技术总监徐峥:Unity引擎使用的三种方式

    在5月13日Unite 2017 案例分享专场上,盛大游戏技术总监徐峥分享了使用Unity引擎的三种方式,以下为详细内容: 大家好,我先简单介绍一下我自己,我是盛大游戏的技术总监徐峥.我今天想分享的主 ...

  9. Unite 2017 | Unity引擎发展四大方向

    Unite 2017 Shanghai已落幕,今天为大家分享本次大会备受关注的Keynote主题演讲.本次大会Keynote主题演讲聚焦了Unity全球领导团队,包括Unity创始人David Hel ...

随机推荐

  1. C++实现双人枪战游戏

    //单机版枪战游戏,喜欢就拿走,把赞留下//by floatiy #include<iostream> #include<cstdio> #include<windows ...

  2. 1.scrapy爬取的数据保存到es中

    先建立es的mapping,也就是建立在es中建立一个空的Index,代码如下:执行后就会在es建lagou 这个index.     from datetime import datetime fr ...

  3. Mysql双主自增长冲突处理

    Mysql双主自增长冲突处理   多主互备和主从复制有一些区别,因为多主中都可以对服务器有写权限,所以设计到自增长重复问题   出现的问题(多主自增长ID重复)  1:首先我们通过A,B的test表结 ...

  4. wmpnetwk.exe怎么禁启动

    Win7控制面板--管理工具--服务,找到并选中"Windows Media Player Network Sharing Service"服务,右键点"属性" ...

  5. Spring MVC Beginner's Guide--应该看第二次

    第一遍,就差WEBFLOW知识点没过了.. 真的值得好好再看第二次呢.. 样例工程算是比较多的啦. 学到真的不少..

  6. 你还在苦逼地findViewById吗?使用ButterKnife从此轻松定义控件

    前段时间笔者在苦逼地撸代码~最后发现有些复杂的界面在写了一屏幕的findviewbyid~~~另一堆setOnXXXListener~有没有方便一点的方法让我们简单点不用每次都定义一次.find一次, ...

  7. [LeetCode]Valid Sudoku解题记录

    这道题考查对二维数组的处理,哈希表. 1.最自然的方法就是分别看每一个数是否符合三个规则.所以就须要对应的数据结构来 记录这些信息,判定是否存在.显然最先想到用哈希表. 2.学会把问题抽象成一个个的子 ...

  8. js获得子页面元素

    在主页面中.添加iframe子页面,假设须要获得子页面的元素则能够使用javascript的contentWindow来获得,注意iframe和frameset必须加入id.详细样例例如以下: mai ...

  9. [Java]LeetCode57 Insert Interval

    Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessa ...

  10. 人见人爱A+B(杭电2033)

    /*人见人爱A+B Problem Description HDOJ上面已经有10来道A+B的题目了,相信这些题目以前是大家的最爱,希望今天的这个A+B能给大家带来好运.也希望这个题目能唤起大家对AC ...