##1、Canvas三种渲染模式
++1.1、Canvas画布
++++Canvas画布是所有UGUI控件的根类,所有UGUI控件的绘制都必须在Canvas上。
++++创建Canvas有以下两种方式:
--(1)直接添加Canvas。
--(2)添加控件的时候由系统自动添加。
++1.2、Canvas渲染模式
++++在Canvas组件当中可以通过RenderMode来设置Canvas的渲染模式。
++++Canvas总共有以下三种渲染模式:
--(1)Screen Space-Overlay:不需要UI摄像机,Canvas画布将会一直出现在摄像机的最前面。
--(2)Screen Space-Camera:需要一个UI Camera,支持UI前方显示3D模型和粒子系统。
--(3)World Space:UI控件称为3D场景当中一部分。
++1.3、Screen Space-Overlay模式
++++画布将呈现在摄像机最前面,其他所有物体都会被遮挡到,即使没有主摄像机,画布也会显示出来。
++1.4、Screen Space-Camera模式
++++该模式下可以设置Plane Distance为Canvas与摄像机的距离,三维物体处于Canvas与摄像机之间的物体将会被显示出来,Canvas后面的将会被覆盖。
++1.5、World Space模式
++++此模式下Canvas相当于三维世界中的一部分,相当于一个GameObject,可以对其进行平移,缩放,旋转。
##2、UGUI布局组件
++2.1、LayoutGroup组件
++++Unity为我们提供了布局组件,便于对子控件进行布局,一个控件上面只能有一种布局组件,布局组件有以下三种:
--1、Horizontal Layout Group(水平布局)
--2、Vertical Layout Group(垂直布局)
--3、Grid Layout Group(网格布局)
++2.2、Horizontal Layout Group
++++属性:
--Padding:上下左右的边距。
--Spacing :子控件在水平方向上的间距。
--Child Alignment :子控件在水平方向上的排列方式。
--Child Force Expand :自适应宽高,是否强行扩大布局元素以填补额外可用的控件。
++2.3、Vertical Layout Group
++++属性:
--Padding :上下左右的边距。
--Spacing :子控件在垂直方向上的间距。
--Child Alignment :子控件在垂直方向上的排列方式。
--Child Force Expand :自适应宽高,是否强行扩大布局元素以填补额外可用的控件
++2.4、Grid Layout Group
++++属性:
--Padding :上下左右的边距。
--Cell Size :单元格的大小。
--Spacing :单元格在X与Y轴方向上的间距。
--Start Corner :第一个元素开始的位置。
--Start Axis :元素排列沿着哪一个方向轴。
--Child Alignment :子元素对齐方式。
--Constraint :填充方式,可以固定行和列。
##3、拖动效果
++3.1、ScrollView
++++图1是使用滑动视图制作的一个界面视图,可以上下滑动查看更多的选项。
++++图2是ScrollView在Hierarchy视图当中的层级视图,其中:
--Viewport为滑动视图显示的内容,
--Scrollbar Horizontal为横向滑动条,
--Scrollbar Vertical为纵向滑动条。
++3.2、ScrollRect
++++ScrollView滑动视图当中起滑动功能的组件为ScrollRect,通过ScrollRect可以设置跟滑动相关的属性。
++++属性(以下属性都可以在程序中通过ScrollRect组件获取)
--Content :可滑动的区域。
--Horizontal, Vertical :水平,竖直方向是否可滑动。
--Movement Type :滑动方式,包括(无限制滑动,弹力限制,无弹力限制)
--Elasticity :回弹的弹力大小。
--Inertia :惯性。
--Deceleration Rate :减速的速率。
--Scroll Sensitivity :滑动的灵敏度。
--Horizontal Scrollbar :横向滑动条。
--Vertical Scrollbar :竖向滑动条。
++++其他常用的属性:
--normalizedPosition :滚动视图所处的位置,值的范围为(0, 0)至(1, 1)。
--horizontalNormalizedPosition :滚动视图水平方向上所处的位置,取值范围0~1。
--verticalNormalizedPosition :滚动视图竖直方向上的位置,取值范围为0~1。
++3.3、自定义滑动视图
++++步骤:
--步骤一: 创建滑动视图取名为 ScrollButton。
并给其添加ScrollRect组件。
--步骤二: 在ScrollButton下创建内容视图取名为Content。
并将其赋值给Scroll Rect的Content属性。
--步骤三: 给Content添加布局组件Vertical Layout Group,
让子视图能够垂直布局。
--步骤四: 给ScrollButton添加Mask组件,超过ScrollButton本身大小的不显示。
##4、回调函数
++4.1、EventSystem
++++EventSystem对象下有三个组件:
--(1)EventSystem:主要用于负责处理输入,射线投射以及发送事件。
--(2)StandaloneInputModule:继承自BaseInputModule。
--(3)TouchInputModule:继承自BaseInputModule。
++++BaseInputModule是一个基类模块,负责发送输入事件(点击,拖拽,选中)到具体对象。
++++一个场景当中只能有一个EventSystem,并且需要BaseInputModule组件才能协助工作
++4.2、UGUI的回调方法
++++输入模块StandaloneModule和TouchInputModule两个组件会检测到用户的一些输入事件,并且以事件的方式通知目标对象。实现这些回调方法需要实现相应的接口。
++++常用的回调事件:
--void OnPointerEnter(PointerEventData eventData) :IPointerEnterHandle :鼠标进入
--void OnPointerExit(PointerEventData eventData) :IPointerExitHandler :鼠标离开
--void OnPointerDown(PointerEventData eventData) :IPointerDownHandler :鼠标点下
--void OnPointerUp(PointerEventData eventData) :IPointerUpHandler :鼠标抬起
--void OnPointerClick(PointerEventData eventData) :IPointerClickHandle :鼠标点击
--void OnBeginDrag(PointerEventData eventData) :IBeginDragHandler :开始拖拽
--void OnDrag(PointerEventData eventData) :IDragHandler :拖拽中
--void OnEndDrag(PointerEventData eventData) :IEndDragHandler :结束拖拽
++4.3、事件使用示例
++++以给Button添加事件为例,给Button添加事件有三种方式:
--1、实现接口,触发回调事件。
--2、在Unity3D引擎当中绑定。
--3、给按钮添加监听事件。
++++(1)实现接口,触发回调事件
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class ButtonController: MonoBehaviour, IPointerClickHandler{
public void OnPointerClick(PointerEventData eventData){
Debug.Log(“Btn Click”);
}
}
++++(2)在Unity3D引擎当中绑定
public class ButtonController : MonoBehaviour{
public void ButtonClickListerner(){
Debug.Log(“立钻哥哥发出:按钮点击相应事件”);
}
}
++++(3)给按钮添加监听事件
void Start(){
button = GetComponent<Button>();
button.onClick.AddListener(BtnClick);
}
void BtnClick(){
Debug.Log(“BtnClickListener”);
}
#立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
++立钻哥哥推荐的拓展学习链接(Link_Url):
++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
++++Unity引擎基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78881685
++++Unity面向组件开发:https://blog.csdn.net/vrunsoftyanlz/article/details/78881752
++++Unity物理系统:https://blog.csdn.net/vrunsoftyanlz/article/details/78881879
++++Unity2D平台开发:https://blog.csdn.net/vrunsoftyanlz/article/details/78882034
++++UGUI基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78884693
++++UGUI进阶:https://blog.csdn.net/vrunsoftyanlz/article/details/78884882
++++UGUI综合:https://blog.csdn.net/vrunsoftyanlz/article/details/78885013
++++Unity动画系统基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78886068
++++Unity动画系统进阶:https://blog.csdn.net/vrunsoftyanlz/article/details/78886198
++++Navigation导航系统:https://blog.csdn.net/vrunsoftyanlz/article/details/78886281
++++Unity特效渲染:https://blog.csdn.net/vrunsoftyanlz/article/details/78886403
++++Unity数据存储:https://blog.csdn.net/vrunsoftyanlz/article/details/79251273
++++Unity中Sqlite数据库:https://blog.csdn.net/vrunsoftyanlz/article/details/79254162
++++WWW类和协程:https://blog.csdn.net/vrunsoftyanlz/article/details/79254559
++++Unity网络:https://blog.csdn.net/vrunsoftyanlz/article/details/79254902
++++C#事件:https://blog.csdn.net/vrunsoftyanlz/article/details/78631267
++++C#委托:https://blog.csdn.net/vrunsoftyanlz/article/details/78631183
++++C#集合:https://blog.csdn.net/vrunsoftyanlz/article/details/78631175
++++C#泛型:https://blog.csdn.net/vrunsoftyanlz/article/details/78631141
++++C#接口:https://blog.csdn.net/vrunsoftyanlz/article/details/78631122
++++C#静态类:https://blog.csdn.net/vrunsoftyanlz/article/details/78630979
++++C#中System.String类:https://blog.csdn.net/vrunsoftyanlz/article/details/78630945
++++C#数据类型:https://blog.csdn.net/vrunsoftyanlz/article/details/78630913
++++Unity3D默认的快捷键:https://blog.csdn.net/vrunsoftyanlz/article/details/78630838
++++游戏相关缩写:https://blog.csdn.net/vrunsoftyanlz/article/details/78630687
++++设计模式简单整理:https://blog.csdn.net/vrunsoftyanlz/article/details/79839641
++++U3D小项目参考:https://blog.csdn.net/vrunsoftyanlz/article/details/80141811
++++UML类图:https://blog.csdn.net/vrunsoftyanlz/article/details/80289461
++++Unity知识点0001:https://blog.csdn.net/vrunsoftyanlz/article/details/80302012
++++U3D_Shader编程(第一篇:快速入门篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80372071
++++U3D_Shader编程(第二篇:基础夯实篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80372628
++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
--_--VRunSoft : lovezuanzuan--_--