UG3L2-1——Image 图像
UG3L2-1——Image 图像
Image
Image是图像组件,是UGUI中用于显示精灵图片的关键组件
除了背景图等大图,一般都使用Image来显示UI中的图片元素
本章代码关键字
123UnityEngine.UI //UGUI相关内容的命名空间Image //Image类image.sprite //Image的当前的图片属性
Image 参数相关
Image不需要像NGUI设置层级来调整渲染顺序,直接在Hierarchy窗口上调整各个Image的顺序即可调整,越在下面越后渲染
Source Image:图片来源(图片类型必须是“精灵”类型)
Color:图像的颜色
Material:图像的材质(一般不修改,会使用UI的默认材质)
Raycast Target:是否作为射线检测的目标
(如果不勾选将不会响应射线检测)
Raycast Padding:射线检测范围设置
可以通过设置上下左右四个边来改变其射线检测范围
Maskable:是否能被遮罩(之后结合遮罩相关知识点进行讲解)
Image Ty ...
UG3L2——三大基础控件
UG3L2——三大基础控件
Image 图片
Text 文本控件
RawImage (原始图片)大图控件
UG3L1-4——Event System 和 Standalone Input Module
UG3L1-4——Event System 和 Standalone Input Module
EventSystem和Standalone Input Module组件
他们主要是用于输入事件监听管理和分发的
如果没有了他们
那么UI中的所有输入事件将不会被响应
他们的参数相关了解即可,一般情况下不会去修改
本章代码关键字
1EventSystem.current.IsPointerOverGameObject() //获取本帧输入是否点击到了UI控件
Event System
Event System意思是事件系统
它是用于管理玩家的输入事件并分发给各UI控件
它是事件逻辑处理模块
所有的UI事件都通过EventSystem组件中轮询检测并做相应的执行
它类似一个中转站,和许多模块一起共同协作
如果没有它,所有点击、拖曳等等行为都不会被响应
Event System 参数相关
First Selected:首先选择的游戏对象,可以设置游戏一开始的默认选择
Send Navigation Events:是否允许导航事件(移动/按下/取消)
Drag Threshold: ...
UG3L1-5——Rect Transform 矩形变换
UG3L1-5——Rect Transform 矩形变换
RectTransform
RectTransform意思是矩形变换,它继承于Transform,是专门用于处理UI元素位置大小相关的组件
Transform组件只处理位置、角度、缩放,RectTransform在此基础上加入了矩形相关,将UI元素当做一个矩形来处理
加入了中心点、锚点、长宽等属性, 其目的是更加方便的控制其大小以及分辨率自适应中的位置适应
RectTransform是专门用于控制UI尺寸大小对齐方式的组件
我们要搞清锚点、轴心点的作用,它主要可以帮助我们进行分辨率变化时位置的自适应(9宫格布局)
我们需要熟练使用该组件
参数相关
Pivot:轴心(中心)点,取值范围0~1
Anchors(相对父矩形锚点):
Min是矩形锚点范围X和Y的最小值
Max是矩形锚点范围X和Y的最大值
取值范围都是0~1
锚点可以是一个点,也可以设置为一个范围或者一条线
Pos(X,Y,Z):轴心点(中心点)相对锚点的位置
Width/Height:矩形的宽高,变化相对于轴心点的位置
...
UG3L1-3——Graphic Raycaster 图形射线投射器
UG3L1-3——Graphic Raycaster 图形射线投射器
Graphic Raycaster
Graphic Raycaster意思是图形射线投射器
它是用于检测UI输入事件的射线发射器
它主要负责通过射线检测玩家和UI元素的交互
判断是否点击到了UI元素
Graphic Raycaster 参数相关
Ignore Reversed Graphics:是否忽略反转图形
Blocking Objects:射线被哪些类型的碰撞器阻挡
(在覆盖渲染模式下无效)
Blocking Mask:射线被哪些层级的碰撞器阻挡
(在覆盖渲染模式下无效)
UG3L1-2——Canvas Scaler 画布缩放控制器
UG3L1-2——Canvas Scaler 画布缩放控制器
Canvas Scaler
CanvasScaler意思是画布缩放控制器
它是用于分辨率自适应的组件
它主要负责在不同分辨率下UI控件大小自适应
它并不负责位置,位置由之后的RectTransform组件负责
它主要提供了三种用于分辨率自适应的模式
我们可以选择符合我们项目需求的方式进行分辨率自适应
必备知识点
屏幕分辨率 —— 当前设备的分辨率,编辑器下Game窗口中可以查看到
参考分辨率 —— 在其中一种适配模式中出现的关键参数,参与分辨率自适应的计算
画布宽高和缩放系数 —— 分辨率自适应会改变的参数,通过屏幕分辨率和参考分辨率计算而来
分辨率大小自适应 —— 通过一定的算法以屏幕分辨率和参考分辨率参与计算得出缩放系数
该结果会影响所有UI控件的缩放大小
屏幕分辨率
Game窗口中的Stats统计数据窗口,看到的当前“屏幕”分辨率
它会参与分辨率自适应的计算
画布大小和缩放系数
选中Canvas对象后
在RectTransform组件中看到的宽高和缩放
宽高 * 缩放系数 = 屏幕分辨率
Refe ...
UG3L1-1——Canvas 画布
UG3L1-1——Canvas 画布
Canvas
Canvas的意思是画布,是UGUI中所有UI元素能够被显示的根本
它主要负责渲染自己的所有UI子对象
如果UI控件对象不是Canvas的子对象,那么控件将不能被渲染
我们可以通过修改Canvas组件上的参数修改渲染方式
场景中可以有多个Canvas
场景中允许有多个Canvas对象
可以分别管理不同画布的渲染方式,分辨率适应方式等等参数
如果没有特殊需求,一般情况场景上一个Canvas即可
笔者后记:
这条不是铁律,我们在某些情况同样可以一个Panel使用一个canvas
UGUI会自动合并批次,也就是说,一个Canvas下的所有元素会合并到一个Mesh内。这意味着,如果一个Canvas下的元素很多,将会造成一个过大的Mesh,而且元素发生改变时,整个Mesh都要重新绘制,开销很大,很可能造成卡顿。
因此,一旦UI界面复杂起来时,应当一个界面自成一个Canvas,如果界面很复杂,可能要划分更多的子Canvas。
同时还要注意动态元素和静态元素的分离,因为动态元素会导致Canvas的Mesh的重绘
但同时,Canvas不可过多,Ca ...
CS1SL3——随机数
CS1SL3——随机数
生成随机数对象
1Random r = new Random();
生成随机数
12345678int i = r.Next(); //生成一个非负数的随机数Console.WriteLine(i);i = r.Next(100); //生成一个0~99的随机数 左边始终是0 右边是100 遵循左包含右不包含原则Console.WriteLine(i);i = r.Next(5,100); //生成一个5~99的随机数 左边是5 右边是100 遵循左包含右不包含原则Console.WriteLine(i);
CS1SL2——项目调试
CS1SL2——项目调试
项目调试
在文字框左侧点击对应的行会成为断点,可以打多个断点,快捷键是F9
会从断点开始会一步步执行代码,快捷键F10
可以从左下角监视窗口看到变量值,可以查找变量信息
F5会直接开始执行代码
打断点
调试模式运行后
在这里进行操作
在这里观察变量情况,以及调用堆栈
CS1SL1——控制台的其他方法
CS1SL1——控制台的其他方法
关键字
123456789Console.Clear(); //清空控制台Console.SetWindowSize(,); //设置控制台窗口大小Console.SetBufferSize(,); //设置控制台缓冲区大小Console.SetCursorPosition(,); //设置控制台光标位置Console.ForegroundColor //设置字体颜色Console.BackgroundColor //设置背景颜色Console.CursorVisible //设置控制台光标显示隐藏Environment.Exit(0); //关闭控制台Console.BufferHeight //控制台缓冲区参数
清空
1Console.Clear();
设置控制台大小
窗口大小,缓冲区大小
要先设置窗口区大小,再设置缓冲区大小
缓冲区大小不能小于窗口大小
窗口大小不能大于控制台最 ...