ondrop->onenddrag
graphic raycaster
idraghandler<-idrophand
ondrop->onenddrag
graphic raycaster
idraghandler<-idrophand
trigger需要在使用前初始化列表
控制大小和强迫子物体拉伸必须成对存在
selectable组件
<b>文本</b>加粗
<i>文本</i>斜体
其实直接transform.position = eventData.position就完了
canvas group
toumin
canvas scaler
constant pixel size
128*128->图片设置中,100pixel=1 unit->1.28*1.28->canvas中,1unit=100pixel->128*128
canvas三种渲染模式
overlay-覆盖在显示界面的最上层
camera-此时画布变为摄像机视线的一个切面,这种情况下不能随意拖动
worldspace-和前者类似,需要拖进一个相机内,不同的是这种情况下画布可以随意拖动
框是蓝图模式
R是原始编辑模式
蓝图模式下图片旋转缩放不会影响框的大小变化
原始编辑模式下会跟着缩放
锚点和轴心点
不点的情况下改变轴心点位置轴心点会移动
点原始编辑模式后轴心点位置固定图片移动
快捷键alt
自定义锚点的方式可以做等比例放缩
archor 如果分开了的话,那么对应于其锚点的集合中心点
如果设置了锚点的话最好使用anchorPosition而不是localposition
位置都是指pivot点的位置, 只不过坐标原点不同, localPosition以父物体pivot为原点, anchoredPositon以anchors点(锚点)为原点
自定义锚点可以改变UI的大小miao分成四个,每个和一个Rect的顶点相对应
安全的获取UI控件的宽高
安全获取ui的宽高:
RectTransform rt;
rt.rect.width
rt.rect.height
属性面板有normal和Debug两种模式
设置ui坐标时尽量使用Anchored Position,不要用Local Position
锚点可以设置ui相对父物体的对齐方式
枢轴其实是
float int wScale = Screen.width/1920.0f;//获取到宽度放大的比例(1920是假设的实际当中的配置,不能随便写),0f是为了得到float类型的数据要把数据改成小数的形式,否则数据会出现问题
float hScale = Screen.height/1080;高度
//比较两者的大小,需要知道缩放比例变化更大的那一条边,针对变化大或变化小的边缩放,会根据具体的UI显示策略有所不同(这里简单举例,以宽的缩放比例为准)
GetComponent<CanvasScaler>().scaleFactor = wScale;//获取当前的组件(CanvasScaler),以及它的缩放参数scaleFactor等于当前的宽比例wScale(以高缩放比例为准时,用当前高的比例)
这样就能根据它的实际尺寸,来对它所有的元素进行缩放,这样可以最大程度保证它显示你修改的尺后也可以按照正常的比例进行显示。(运行需要过程,不要慌)
所以Scale Factor这个参数可以用于对于整体UI元素按同等比例放大缩小,尽量保证原本元素的显示位置。
缺点:整体UI在不同分辨率的机型上会有一些差别。但影响不大。
,四RectT的宽高操作角的锚点
RectTransform rect = transform.GetComponent<RectTransform>();
rect.rect.width;
rect.rect.height;
Screen.width//当前的屏幕宽度
Screen.Height //当前屏幕的高度