UGUI学习笔记

1  Canvas 画布

 

Overlay   UI永远在最前面 分辨率改变画布自动改变 canvas不能移动,改变

 

Camera 画布放在camera前的一个指定距离上,画布会随camera field改变  canvas不能移动改变

 

WorldSpace  可手动改变画布的大小和位置  UI元素可以呈现在3D物体的前或后

 

Canvas 在 Camera WorldSpace  渲染是依据摄像机的的depth改变,同一摄像机看canvasSorting Layer 谁大,同一Sorting LayerOrder in layer

 

元素在canvas中看上下顺序,下面的显示在前面

 

2 RectTransform

 

 

2  text

Text 支持 html tag <color></color> <size></size>

 

Text 的大小随着字数的增加而变大,挂Content Size Fitter 修改Text Pivot来确定向那个方向扩展

 

3 3D物体和UI穿透

 

EventSystem.current.IsPointerOverGameObject()  来判断是否点击到UI

 

给主摄像机加PhysicsRaycaster 

4 ugui 点击事件

继承EventTriggerListner类对各种事件进行委托 

public delegate void VoidDelegate(GameObject go);

public VoidDelegate onClick;

static public EventTriggerListener Get (GameObject go){

EventTriggerListener listener = go.GetComponent<EventTriggerListener>();

if (listener == null) listener = go.AddComponent<EventTriggerListener>();

return listener;

}

public override void OnPointerClick(PointerEventData eventData){

if(onClick != nullonClick(gameObject);

}

这种情况下使用

EventTriggerListener.Get (btn.gameObject).onClick = OnBtnClicked;

void OnBtnClicked(GameObject go){

btn1.interactable = false;

Debug.Log ("btn 1 is clicked");

}

如果是Button,将interactable设为false,Button还是可以响应点击事件,继承接口也是一样。解决方案:

(1)使用unity自带的AddListener

btn.onClick.AddListener(

delegate(){

 this.OnBtnClicked(parmats p);

}

);

void OnBtnClicked(GameObject go){

btn1.interactable = false;

Debug.Log ("btn 1 is clicked");

}

(2)将Button禁用的同时,将EventTriggerListener禁用

(3)给按钮加Canvas Group 将blocks raycasts (接受射线)禁用 

5 ugui draw call 

一种字体 = 1 drawcall

A字体B字体A字体 = 3 drawcall

A字体A字体B字体 = 2 drawcall

A字体 sprite  A体 = 2 drawcall

一个没有Sprite的组件 = 1 drawcall

一个有Sprite的组件 = 1 drawcall

多个sprite 一个packing tag = 1 drawcall

多个sprite 多个packing tag = 多个 drawcall

Resource文件夹下的图片不会自动打成图集

 

6 Rect Transform 

GetComponent<RectTransform>().sizeDelta = new Vector2(100, 100); 

 

7 背景image随text 大小的改变而改变

 

在image上挂 layout 和 content size fitter

 

8 层级

SetSiblingIndex(); GetSiblingIndex(); SetAsFirstSibling(); SetAsLastSibling()

9  Alpha

CrossFadeAlpha(float alpha, float duration, bool ignoreTimeScale);

10 ui 与 gfx

特效默认order layer 0

Order > 0 gfx 在最后 order大的在 order小的gfx 前面

11 Multiple Sprite 

Sprite[] sprites = Resources.LoadAll<Sprite>(path);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Unity UGUI可以参考一些资源和示例。例如,可以参考引用中提到的Unity UGUI实现无限循环滑动列表功能的示例场景。导入这个示例场景并运行,可以了解如何使用Unity UGUI来实现循环滑动列表的功能。 此外,UGUI还可以用于对图片进行各种操作,如旋转、缩放、截取和裁剪等。可以参考引用中提到的使用UGUI对图片进行任意角度、大小、缩放和位置的操作。UGUI还提供了设置圆角或矩形方式操作图片的功能。 通过学习这些资源和示例,可以更好地掌握Unity UGUI的使用方法,从而进行更加丰富和多样化的界面设计和交互功能的开发。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [Unity UGUI无限循环列表](https://download.csdn.net/download/qq_33547099/13799875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [unity UGUI图片任意截取和裁剪](https://download.csdn.net/download/lizhenxiqnmlgb/85090424)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值