默认已经知道UI中的基础知识,这里提供一些细节
📚️锚点和轴心点
- 锚点是根据父物体的确定的,锚点Anchor分为两种状态,Min = Max 和 Min != Max
Min != Max时会根据锚点进行自适应拉伸
参考文章:Unity 锚点 Anchors的通俗易懂详解 - 轴心点就是将物体抽象为一个点时的位置
📚️锚点坐标和本地坐标
- 锚点坐标 AnchoredPosition,根据自身锚点的中心为坐标系
中心即四个小三角交叉连线处
- 本地坐标 LocalPosition 根据父物体的位置(pivot)为坐标系
📚️屏幕坐标转RectUI坐标的Localposition
- 本质是矩阵的空间转换,通过两个矩阵空间屏幕的二维空间到RectTransform的二维空间
需要注意的是Canvas是Overlap模式时,cam传入null,其他模式正常传入摄像机。这个原因是因为Canvas模式于摄像机无关始终位于屏幕上,而Camera模式是固定在摄像机前的。
📚️ 接口的的使用
-
EventTrigger
EventTrigger其实是封装了大部分鼠标接口的组件便于可视化的使用
参考文章: Unity中EventTrigger的几种使用方法
所以我们根据EventTrigger的源码可以自己去使用这几个I__Handler
接口 -
I__Handler
接口的使用
接口能够传入一个PointerEventData获得一些鼠标信息,官方文档:PointerEventData -
UI中直接继承接口就能使用这里不多做赘述
-
如果想让场景中的3D物体也使用接口需要在摄像机处添加组件 Physics Raycaster
官方文档对组件的解释:Raycaster对场景中的3D对象进行光线投射,这允许将消息发送到实现事件接口的3D物理对象。