从外部导入的UI图片资源需要先将texture type修改为sprite(2d and UI)格式。
color类是以0-1浮点数来控制RGBA参数的类,而color32则是以0-255来控制,两者之间有很大区别,可以摁F12进入源码中查看详细参数规则
raycast target的勾选表示是否能被射线检测到,装饰用UI一般取消勾选,以防阻挡需要使用检测的UI或者屏幕点击
从外部导入的UI图片资源需要先将texture type修改为sprite(2d and UI)格式。
color类是以0-1浮点数来控制RGBA参数的类,而color32则是以0-255来控制,两者之间有很大区别,可以摁F12进入源码中查看详细参数规则
raycast target的勾选表示是否能被射线检测到,装饰用UI一般取消勾选,以防阻挡需要使用检测的UI或者屏幕点击
这里有坑,轴心点不是(0,0)的位置,轴心点是图片的位置。
LocalPosition: 轴心点相对于rectPanel几何中心点的位置
AnchorPosition:轴心点相对于锚点几何中心点的位置
其实直接transform.position = eventData.position就完了
blocking object 是设置阻挡对物体类型。具体类型是按照物体身上的刚体类型进行判断。
横竖比例工具
可以用来限制图片的显示比例
aspect ratio为宽高的比值
渲然原则:后渲染会越在上层
影响渲染层级的因素:
相机的位置
sorting layer --渲染层级
渲然层级
场景的列表顺序
自适应内容大小改变的组件,可用于文本框等
颜色两种单位
RGB 0-255 、 0 - 1.0
九宫格:
切割图像九格。确定四个角的图像,拉伸时四个角不会变形,剩余部分会变形
代码手动添加响应事件
EventTrigger trigger=gameObject.AddComponent<EventTrigger>();
trigger.triggers=new List<EventTrigger.Event>();
EventTrigger.Entry entry=new EventTrigger.Entry();
entry.eventId=EventTriggerType.PointerClick();
entry.callback=new EventTrigger.TriggerEvent();
entry.callback.AddListener((data)=>ChangeColor());
void Start()
{
UnityAction<BaseEventData> click = new UnityAction<BaseEventData> (MyClick);
EventTrigger.Entry myclick = new EventTrigger.Entry ();
myclick.eventID = EventTriggerType.PointerClick;
myclick.callback.AddListener (click);
EventTrigger trigger = gameObject.AddComponent<EventTrigger> ();
trigger.triggers.Add (myclick);
}
public void MyClick(BaseEventData data)
{
Debug.Log ("点击");
}
如何简单实现技能CD的效果
image组件:
imagetype :filled
使用自定义方向、方法和数量进行填充图片的效果
Raw Image :UV :(可以实现帧动画)
image类型都是 sprite类型。
UV:一个坐标。
安全的ui宽高获取方式:
REctTransform ract = transform.GetComponent<RectTransform>();
ract.ract.width/height ect
private RawImage rimag;
private float offsetX;
private float offsetY; //增量
rimage.uvRect = new Rect();
offsetY = 1/0.4f
接口IInitializePotentialDragHandler为准备开始拖动
IBeginDragHandler为开始拖动
IDragHandle正在拖动
IEndDragHandler 拖拽结束
UI时间都是通过图像射线检测,所以raycast target必须为勾选状态
在2DUI上显示3D物体:
Render Texture
camera 上面的target texture属性。
1、创建Render Texture 给camera 和rawiamge。
2、将cemera 的clear flag 修改成solid color。
Tip:text 的字体,超过文本框大小,则不会显示。
Rich Text:富文本
可以在一个text里面单独调整字体的样式格式。
通过macdown的语法
获取组件宽高:
RectTransform rect = rect = transform.GetComponent<RectTransform>();
rect.rect.width;
rect.rect.height;
MASK不建议使用,会影响性能。