1、一个物体的锚点
1、一个物体的锚点
1、每个游戏组件,至少包含一个transform(它是最基本的内容,且无法删除。)
2、Anchor锚点:四朵花瓣的那个锚
3、pivot即中心点:蓝色圆圈,xyz坐标是基于pivot来计算的;
4、Rect transform 的width、height是指像素点
RectTransform.rect.width;
RectTransform.rect.height;
选中R
根据宽高自适应模式,基础分辨率根据某一规则使自身宽高比与实际分辨率相同,得到Canvas大小,下面UI元素大小不变。实际分辨率与Canvas得到UI缩放比例,Canvas通过UI缩放比例带着UI元素投到实际分辨率。
某一规则:
1.宽高自定义
2.Canvas向外扩展
3.Canvas向内缩小
蓝图模式
原始编辑模式
recttransform 定义宽或高
安全的ui宽高获取方式:
REctTransform ract = transform.GetComponent<RectTransform>();
ract.ract.width/height ect
讲的太烂了b
RectTransform rect = transfoem.GetComponent<RcetTransform>();
rect.rect.width
获取图形宽高
local position物体的几何中心点位置
anchored position 物体锚点位置
蓝图影响的是旋转和大小
Text的富文本:可以将Text中一大段的字段设置不同的格式;可加粗,斜体,变色等。
Ondrag + eventData.delta实现拖拽
系统按键接口 也需要selectable组件
选择接口需要加selectable组件
IPointerUpHandler与IPointerClickHandler的区别?
IPointerUpHandler是你在这个物体上按下,无论在哪里抬起都会触发
IPointerClickHandler是你在这个物体上按下,必须在这个物体上抬起,才会触发
陈年bug 虽然道理不是很懂,但解决办法就是在子物体上实现down的接口
drop在谁身上 就执行谁的脚本
拖动功能接口 必须要有OnDarg 否则其他3个不执行
图形拖动实现
使用RectTransformUtility.ScreenPointToWorldPointInRectangle获取世界坐标,赋值给图形
void IDragHandler.OnDrag(PointerEventData eventData)
{
RectTransform rect = GetComponent<RectTransform>();
Vector3 pos = Vector3.zero;
RectTransformUtility.ScreenPointToWorldPointInRectangle(rect, eventData.position, eventData.enterEventCamera,
out pos);
rect.position = pos;
}