##1、UGUI概述数据库
++1.1、Unity界面发展史编程
++++【老版本界面onGUI】=>【GUI插件NGUI】=>【新版本界面UGUI】设计模式
++1.2、UGUI特色网络
++++新的UI系统是从Unity4.6开始被集成到Unity编译器中的。Unity官方给这个新的UI系统赋予的标签是:灵活,快速和可视化。ide
++++对于开发者而言,就是有三个优势:效率高效果好,易于使用和扩展以及与Unity的兼容性高。工具
++++新的UGUI系统具备如下特色:布局
--1、引擎内置,结合更加紧密。学习
--2、运行稳定,操做方便。字体
++1.3、UGUI优势动画
++++UGUI与老版本onGUI相比:
--1、独立的坐标体系;
--2、全新的事件机制;
--3、更佳高效率的运转效率。
++++UGUI与GUI插件NGUI相比:
--1、由NGUI创始人参与开发;
--2、与Unity结合更加密切;
--3、自适应系统更加完善;
--4、更方便的深度处理;
--5、省去Altas,直接使用Sprite Packer;
##2、UGUI画布
++2.1、建立UGUI控件
++++第一种: 在Hierarchy当中经过 右键=>UI,找到相应的UI控件。
++++第二种:经过工具栏【GameObject】=>【UI】,找到相应的UI控件。
++2.2、Canvas画布
++++当咱们任意建立一个UI控件的时候能够看到在层级视图当中不但生成咱们建立的控件,还会同时建立一个Canvas和EventSystem。
++++Canvas是画布,是全部UI控件的根类,也能够看做全部UI控件的父物体,全部UI控件都必须在Canvas上面绘制。它是一个带有Canvas组件的游戏物体EventSystem事件系统,负责监听用户的输入。
++++建立UI控件时,当层级视图当中没有Canvas和EventSystem系统会帮咱们自动建立。
++2.三、总结
++++1、UGUI画布也称为Canvas,UGUI是全部控件的父类。
++++2、全部UGUI控件都必须绘制在画布上面。
++++3、当建立UGUI控件,工程当中没有Canvas的时候会自动建立Canvas与EventSystem。
##3、UGUI基础控件
++3.1、Text
++++Text控件是用来显示文本的文本控件,选中Text能够查看属性:
--Text :建立控件时显示的文字
--Character:
--Font :字体
--Font Style :字体格式:黑体/斜体
--Font Size :字体大小
--Line Spacing :行间距
--Rich Text :富文本
--Paragraph:
--Alignment :对其方式
--Horizontal Overflow :水平溢出
--Vertical Overflow :垂直溢出
++++Text的属性能够在Inspector当中经过Text组件进行设置,也能够在代码当中进行动态设置。给Canvas挂载脚本UGUISetting.cs
示例:
Text text;
void Start(){
text = GameObject.Find(“Text”).GetComponent<Text>();
text.text = “立钻哥哥”;
text.alignment = TextAnchor.MiddleCenter;
text.fontSize = 20;
text.fontStyle = FontStyle.BoldAndItalic; //字体样式
text.color = Color.red;
}
++3.2、Image
++++Image控件主要是用来显示图片,显示图片的格式是Sprite,具体属性以下:
--Source Image :Image显示的图片,图片格式为Sprite
--Color :颜色。
--Material :材质。
--Preserve Aspect :图像宽高是否按原始比例。
--Set Native Size :将Image大小设置为图片默认大小。
++++当咱们给Image选择一张贴图以后会出现Image Type选项,以下图。ImageType总共有四种选项:
--simple :显示单个会拉伸;
--Tilled :平铺显示,图片按照原始显示;
--Sliced :按照九宫格显示,拉伸区域只会在九宫格中间;
--Filled :填充显示,能够根据不一样的填充方式模拟技能冷却的效果。
++++Image Type的Filled填充模式常能够用来制做血条,冷却技能等。
++++示例:如何使用程序控制图片填充显示: 当按键A按下的时候Image控件180度填充显示。
--在Start方法中获取Image控件,设置填充模式为180度填充:
void Start(){
image = GameObject.Find(“Image”).GetComponent<Image>();
image.fillMethod= Image.FillMethod.Radial180;
}
--在Update方法中判断当按键A按下的时候让图片180度填充:
bool isFilled =true;
void Update(){
if(Input.GetKeyDown(KeyCode.A)){
isFilled = false;
}
if(!isFilled){
image.fillAmount += Time.deltaTime;
if(image.fillAmount >= 1){
image.fillAmount = 1;
isFilled = true;
}
}
}
++3.3、RawImage
++++RawImage一样是用来显示图片的控件,跟Image控件的差异就是Image显示图片的格式为Sprite,RawImage显示图片的格式为Texture,此外RawImage能够控制行列。
--Raw Image(Script)
--Texture :导入的图片样式
--UV Rect:纹理贴图坐标,w和h
++3.4、Button
++++Button控件,包含的Text控件用于显示按钮的文本。
++++当某个UGUI控件添加了Button组件便拥有了按钮点击的功能。
++++Button组件:
--Interactable :是否能够交互。
--Transition :按钮的过渡效果。
--按钮在不一样状态的颜色:
--Normal Color
--Highlighted Color
--Pressed Color
--Disabled Color
--Color Multiplier
--Navigation :控件间导航。
--On Click() :给按钮添加响应事件。
++++Transition用于设置按钮在不一样状态间的过渡效果,总共有四种方式:
--(1)None:无过渡效果
--(2)Color Tint:设置不一样状态不一样颜色来过渡。
--(3)Sprite Swap:设置不一样图片来过渡不一样状态。
--(4)Animation:设置不一样动画过渡不一样状态。
++++给按钮添加监听事件:
Button btn;
void Start(){
//获取到按钮
btn = GameObject.Find(“Button”).GetComponent<Button>();
//给按钮添加监听事件
btn.onClick.AddListener(BtnClick);
}
void BtnClick(){
//按钮响应事件
Debug.Log(“btn.onClick.AddListener()”);
}
++3.5、Slider
++++给滑动条Slider添加监听事件。
示例:
Slider slider;
void Start(){
//获取到Slider组件
slider = GameObject.Find(“Slider”).GetComponent<Slider>();
//添加监听事件
slider.onValueChanged.AddListener(SliderValueChange);
}
//事件响应
public void SliderValueChange(float value){
Debug.Log(“value = ” +value);
}
++3.6、ScrollBar
++++滚动条ScrollBar,Scrollbar层级视图当中包含了滑块Handle。
++++Scrollbar属性:
--Handle Rect :滑动区域。
--Direction :滑动方向。
--Value :滑块当前值。
--Size :滑块大小。
--Number Of Steps :可滑动区域分为几步。
--On Value Changed(Single) :滑块响应事件。
++3.7、Toggle
++++Toggle为单选框,能够用来建立开关按钮。以下图,层次视图当中包含了显示背景的Background和显示文本的Label。
++++Toggle属性以下,其中Group表示当前选中框是否属于某一组选中框,如果的话则全部选中框只能选中一个。
--Is On :交互是否开启。
--Toggle Transition :状态改变过渡效果设置。
--Graphic :选中或取消要显示或隐藏的文本或图片。
--Group :当前选中框是否属于某个组。
--On Value Changed(Boolean) :事件响应。
++++给Toggle添加监听事件
示例:
Toggle toggle;
void Start(){
toggle = GetComponent<Toggle>(); //获取Toggle组件
//给Slider组件添加监听事件
toggle.onValueChanged.AddListener(ToggleAction);
}
void ToggleAction(bool isOn){
print(isOn);
}
++3.8、InputField
++++InputField建立出来以下图,InputField层级视图当中包含Placeholder与Text,
--Placeholder 用于显示占位符,即输入框没有输入文本时显示的文本,例以下图的“Enter text”;
--Text 用于显示输入的内容。
++++输入框Inputield的具体属性:
--Text :初始文本显示的内容
--Character Limit :字符数量限制。
--Content Type :文本类型。
--Line Type :文本单行显示仍是多行。
--Caret Blink Rate :光标闪动频率。
--Caret Width :光标的宽度。
--Custom Caret Color :自定义光标的颜色。
--Selection Color :选中文本时的颜色。
--On Value Changed(String) :文本编辑时触发的事件。
--On End Edit(string) :结束编辑的时候触发的事件。
++++给InputField添加监听事件
示例:
InputField inputField;
void Start(){
//获取输入框
inputField = GameObject.Find(“InputField”).GetComponent<InputField>();
inputField.onEndEdit.AddListener(InputFieldEndEdit);
}
void InputFieldEndEdit(string text){
print(“文本框当中的文本:” +text);
}
++3.9、Panel
++++Panel :面板,功能至关于控制的容器,里面能够存放其余控件。
--做用: 使用Panel控件能够总体移动和处理一组控件。
--设计规范: 一个功能完备的UI界面每每会使用多个Panel控件。
++++示例: 将资源商店当中的全部分类放在单独一块Panel当中。
##4、RectTransform
++4.1、RectTransform
++++RectTransform的做用用来计算UI的位置和大小,RectTransform继承于Transform,具备Transform的全部特征,经过RectTransform可以实现基本的布局和层次控制。
++++RectTransform当中专有名字:
--Pos X, Pos Y :Pivot与Anchor的距离
--Pivot :中轴,中心点
--Anchor :锚点
--Width&Height :宽与高,相对于锚点
--Left, Right, Top, Bottom :左右上下
++4.2、中心点Pivot
++++按下T键选中某一个UI控件便可看到UI控件的中心点,中心点也叫中心轴,当鼠标拖动UI控件进行旋转的时候会围绕中心点旋转。
--中心点是矩形的一部分。
--0对应左下角,1对应右上角。
++4.3、锚点Anchor
++++如图所示,箭头所指即为锚点,锚点表示的是相对于父级矩形的子矩形区域。
++++如图所示,锚点为四边形,锚点有多种摆放方式,能够为矩形,点状或是为线状。
++++锚点移动范围仅限于父级视图当中。
++4.4、锚点的四种摆放方式
--锚点呈点状
--锚点与组件自己重合
--锚点跟父物体重合
--锚点呈线状
++++(1)锚点呈点状: 当UI的锚点为中心点时,无论父控件的大小怎么改变,UI距离锚点的位置固定,大小固定,此时RectTransform(Pos X, Pos Y, Width, Height),其中Pos X与Pos Y分别表示UI中心点到锚点的水平与方向距离。Width与Height是UI的大小。
++++(2)锚点与组件自己重合: 当UI的锚点为四方形或者与UI自己大小相同的时候,UI的大小与父控件的大小变换成正比,此时RectTransform(Left, Top, Right, Botton),分别为锚点左,上,右,底 距离UI对应边的距离。
++++(3)锚点跟父物体重合: 当UI控件的锚点与父物体重合的时候,无论父物体怎么变化,UI控件四条边相对于锚点四条边的距离保持不变。
++++(4)锚点呈线状:
--当UI控件的锚点呈线状并为竖直方向时,则UI控件竖直方向的大小与父物体竖直方向的大小成正比,水平方向大小不变。
--当锚点呈线状而且为水平方向时,则水平方向大小与父物体水平方向的大小成正比,竖直方向大小不变。
#立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
++立钻哥哥推荐的拓展学习连接(Link_Url):
++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
++++Unity引擎基础:http://www.javashuo.com/article/p-beommoeb-ka.html
++++Unity面向组件开发:http://www.javashuo.com/article/p-eigmuvut-dt.html
++++Unity物理系统:http://www.javashuo.com/article/p-nqvvciwv-kd.html
++++Unity2D平台开发:http://www.javashuo.com/article/p-ycaagdtj-hs.html
++++UGUI基础:http://www.javashuo.com/article/p-rukxwckw-mc.html
++++UGUI进阶:http://www.javashuo.com/article/p-wcatruhq-gt.html
++++UGUI综合:http://www.javashuo.com/article/p-dkccmqii-gg.html
++++Unity动画系统基础:http://www.javashuo.com/article/p-mbrdouxy-dq.html
++++Unity动画系统进阶:http://www.javashuo.com/article/p-aqaqpbkh-bp.html
++++Navigation导航系统:http://www.javashuo.com/article/p-dswwllas-t.html
++++Unity特效渲染:http://www.javashuo.com/article/p-ckojjyfj-bp.html
++++Unity数据存储:http://www.javashuo.com/article/p-bvlzynso-m.html
++++Unity中Sqlite数据库:http://www.javashuo.com/article/p-ejutsbxl-ca.html
++++WWW类和协程:http://www.javashuo.com/article/p-dbwmhsav-cy.html
++++Unity网络:http://www.javashuo.com/article/p-sqrlntgh-dw.html
++++C#事件:http://www.javashuo.com/article/p-zmwruvql-gm.html
++++C#委托:http://www.javashuo.com/article/p-uozpymaf-gh.html
++++C#集合:http://www.javashuo.com/article/p-sfqfdqsf-ex.html
++++C#泛型:http://www.javashuo.com/article/p-xrttqngo-ee.html
++++C#接口:http://www.javashuo.com/article/p-vhlfplgv-dm.html
++++C#静态类:https://blog.csdn.net/vrunsoftyanlz/article/details/78630979
++++C#中System.String类:http://www.javashuo.com/article/p-olslkfao-cq.html
++++C#数据类型:http://www.javashuo.com/article/p-hmabbtmc-ba.html
++++Unity3D默认的快捷键:http://www.javashuo.com/article/p-wuwcrclr-s.html
++++游戏相关缩写:http://www.javashuo.com/article/p-mwacxwca-gm.html
++++设计模式简单整理:http://www.javashuo.com/article/p-rngqugib-hg.html
++++U3D小项目参考:https://blog.csdn.net/vrunsoftyanlz/article/details/80141811
++++UML类图:http://www.javashuo.com/article/p-sxberuew-bm.html
++++Unity知识点0001:http://www.javashuo.com/article/p-ryvdxxjr-ep.html
++++U3D_Shader编程(第一篇:快速入门篇):http://www.javashuo.com/article/p-kyppgrac-gz.html
++++U3D_Shader编程(第二篇:基础夯实篇):http://www.javashuo.com/article/p-qkyowtli-hv.html
++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
--_--VRunSoft : lovezuanzuan--_--