UGUI进阶
来源:互联网 发布:矩阵奇异值分解步骤 编辑:程序博客网 时间:2024/06/05 18:46
UGUI进阶
##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;
publicclass ButtonController: MonoBehaviour, IPointerClickHandler{
public voidOnPointerClick(PointerEventDataeventData){
Debug.Log(“Btn Click”);
}
}
++++(2)在Unity3D引擎当中绑定
publicclass ButtonController: MonoBehaviour{
public voidButtonClickListerner(){
Debug.Log(“立钻哥哥发出:按钮点击相应事件”);
}
}
++++(3)给按钮添加监听事件
void Start(){
button= GetComponent<Button>();
button.onClick.AddListener(BtnClick);
}
void BtnClick(){
Debug.Log(“BtnClickListener”);
}
--_--VRunSoft : lovezuanzuan--_--
- UGUI进阶
- 【UGUI进阶】RectTransform剖析
- 【UGUI进阶】RectTransform剖析
- 2.8 UGUI进阶
- UGUI
- UGUI
- UGUI
- UGUI
- UGUI
- UGUI
- UGUI
- UGUI
- ugui
- UGUI
- UGUI
- UGUI
- UGUI
- uGUI
- Tch智能工业过程监控比赛实例
- Vijos P1986 小h的妹子树二
- SparkStreaming和Kafka集成的两种方式(最全)
- 【Timus Online Judge 1132】 Square Root
- 机房思路梳理
- UGUI进阶
- Git——如何从master检出分支dev并推送到远端?
- shell解析json之jq工具
- Graphics的平移与旋转
- Chapter 14 Greenplum PL/R Language Extension
- android中的小布局技巧
- 浅谈DCIM平台的6化
- 液冷模块是什么?有什么作用与意义?
- clickhouse之分布式(distribute)