rawimage中UV坐标代表图片映射在游戏物体上的坐标,一般用于制作帧动画。
rawimage中UV坐标代表图片映射在游戏物体上的坐标,一般用于制作帧动画。
使用UI一般是用默认大小,所以调用图片之后应在image组件中点击set native size还原默认大小
image type中sliced模式为切图模式,用于经过切割的图片,例如九宫格切割
image组件中取消fill center的话,会将九宫格的中间方块抹消,其余方块不受影响,一般用于制作屏幕方框
tiled模式则是平铺,经过切割的图片使用此模式的话一般用于边缘平铺。
九宫格切割:点击图片,在sprite mod中选择single模式,点击sprite editor就可以进行切割了。切割过的图片中四个顶点的方块不会被拉伸影响,其他方块则反之
如果导入的图片为图集,需要手动进行细微切割,则可以改用multiple模式,点击sprite editor进行切割(也包含九宫格功能)
从外部导入的UI图片资源需要先将texture type修改为sprite(2d and UI)格式。
color类是以0-1浮点数来控制RGBA参数的类,而color32则是以0-255来控制,两者之间有很大区别,可以摁F12进入源码中查看详细参数规则
raycast target的勾选表示是否能被射线检测到,装饰用UI一般取消勾选,以防阻挡需要使用检测的UI或者屏幕点击
Select事件
1 OnSelect
2 DeSelect
3 OnUpdateSelect
必须和Selectable组件配合使用
子物体只实现Click
父物体实现Click和Down
当父物体和子物体重叠的时候
在点击父物体时,事件的触发没有问题
但当点击子物体时,子物体的Click和父物体的Click事件都不会被触发,父物体的其他事件不受影响
解决方法:子物体也实现Down
IDropHandler依赖于IDragHandler
所有的拖拽接口都依赖于OnDrag
也就是说如果想实现拖拽功能的话,必须要有OnDrag
selectable就是一切交互组件的基础
其他的就是可以绑定事件
Unity的遮罩组件Mask:
父物体时遮罩图片
子物体是要遮罩的图片
将Mask组件挂在父物体上
RawImage的应用
1 序列帧动画的播放
2 将3D物体映射在UI上
将RT分别赋值给RawImage和拍摄3D物体的摄像机,不想在UI上显示背景的化,该摄像机渲染方式选择Solid Color
RawImage主要应用于帧动画,利用UV Rect,编写脚本可以实现帧动画的播放
ScaleFactor = 运行时的屏幕尺寸/制作时的屏幕尺寸
图片的像素数*图片面板中的像素转unity单位*Canvas中的unity单位转像素 = 在cavas中图片的像素数
画布的渲染方式有三种:
1 OverLay:UI始终在最上层
2 Camera:绑定一个摄像机,通过调节摄像机和Panel之间的距离,可以让3D物体显示和UI之间的显示,不可以穿插显示
3 World Space:调节3D物体,可以穿插显示
蓝图模式:panel不会随着图片的改变而改变
原始编辑模式:轴心点的位置不变,通过改变UI的位置满足轴心点数值的变化
获取UI宽高最安全的方式
RectTransform rect = transform.GetComponent<RectTransform>();
Debug.Log("UI的宽:"+rect.rect.width+" 高:"+rect.rect.height);
可以通过设置轴心点位置的方式,让UI空间在放大和缩小时,保持一边的位置不变
当轴心点位于一个边上时,那么那个边的位置是不会变得,当轴心点在一个角上的时候,那么构成这个角的两边在方法过程中的时候,位置是不会改变的
我就使用Anchors Position了
也就是以子物体的锚点为(0,0)点,然后计算子物体Pivot的位置
LocalPosition是以子物体的几何中心点为(0,0)点,计算Pivot的位置
通过锚点的设置对UI组件之间进行适配