unity_UI常用组件知识点

1、Image 的overrideSprite和Sprite,overrideSprite可以重复设置,Sprite设置之后,则不能再次设置了。

2、transform.translate的理解

transform.translate(vector3.forward,space.self) 沿着自身坐标系的前向前进

transform.translate(vector3.forward,space.world) 沿着世界坐标前进

transform.translate(transform.forward,space.self)建议不使用这个用法。

它所表述的含义是,让物体在自身坐标系里面,按照自己坐标在世界坐标的前向偏移 ,进行移动

它会将transform.forward(0,0,1)从自身坐标系转到世界坐标系中坐标 vector2

如果物体发生过旋转:vector2 = (自身z轴在世界坐标系X轴的分量值, 0, 自身z轴在世界坐标系z轴的分量值) 1 * cos(旋转角度)

没有发生过旋转:vector2 = (0,0,1)

Vector3.Angle 计算两向量的夹角度数

Vector3.Cross 求两个向量的法向量

Vector3.Dot=|a||b|Cos(a,b) 计算两向量的夹角,如果方向相同,返回1,方向相反,返回-1,当向量之间的角度减小,它们得到更大的值。

3、ui自适应:

真正的项目中不是这样子进行适配的,因为这样子对 stretch 模式的 UI 不够友好,一般选择是根据高度进行适配,这样制作UI的时候高度上是可以固定的,然后宽度上需要进行自适应,和屏幕的两边进行对齐。因此真正的使用规则如下:1. Canvas 选择 Screen Space-Camera 模式;2. Camera 设置成正交模式;3. Canvas Scaler 选择 Scale With Screen Size, Screen Match Mode 选择 Match Width Or Height,比例设为1,即只和高度进行适配;4. Camera 的 Clear Flags 选择 Depth Only。5、UICamera的depth 设为1000,CullingMask 设为UI

camera.size 控制3d物体在ui中的大小

4、Scale With Screen Size 

Screen Match Mode 又包含三种模式

* Match Width Or Height。下面包含一个Macht属性,当处于最左边时,屏幕高度对于UI大小完全没有任何影 响,只有宽度会对UI大小产生影响。假设宽度为Reference Resolution宽度的x倍,则UI整体缩放为Reference   Resolution设置参数的x倍。也就是说只有宽度等于Reference Resolution宽度时,才能做到pixel perfect,否则像素就会有拉伸 ,当处于最右边时,与上述情况正好相反,决定整体缩放值的是高度,而宽度则没有任何影响 ,处于中间某处时,对上述两者的影响进行权重加成 。

math = 0  当分辨率与设定不同时, 会上下留黑边

math = 1 当分辨率与设定不同时,会左右留黑边

* Expand 缩放不剪切:当屏幕分辨率与设定不同时,选择变化较小的一个方向(横向还是纵向),进行缩放显示

  ,它会保证设计时分辨率能显示出来的缩放后依然能显示出来。

    它会左右或者上下留黑边,但是会全部显示出来

    使用RectTransform之后,会导致响应的控件发生缩放,控件会缩小

* Shrink 缩放剪切:当屏幕分辨率与设定不同时,选择变化较大的一个方向(横向还是纵向),进行缩放显示

  ,对于超出的部分剪切不显示。    不会留黑边,

    使用RectTransform之后,控件正常比例显示

5、UGUI中Content Size Fitter的使用

    1、适应于自身控件大小随着内容变化而变化,如text上面加上Content Size Filter之后,文本内容变化之后,text的大小也会跟着变化,长度和高度

    2、Content Size Filter 和Layout Group 组合使用,可以一起控制父节点下面的节点的按顺序摆放,如与Virtical Layout Group一起使用,会使父节点下的子节点,按照垂直方向排列,父节点的大小由所有子节点来控制

   3、Layout Group节点下面不准Content Size 的使用,所以一般content size 适应于控制自身控件的适应

6、unity中点击不规则图片
[RequireComponent(typeof(Image))]
public class AlphaHitTest : MonoBehaviour {
    public float alpha = 0.1f;
    private void Awake()
    {
        Image image = GetComponent<Image>();
        if (image)
        {
            image.alphaHitTestMinimumThreshold = alpha;
        }
    }
}

可以把这个脚本挂在对应图片上,然后图片设置勾一个read/write,就可以实现

7、sprite 的 Mesh type 设置

Tight模式:在生成对应的图片mesh时候,图片周围的空白像素会被裁剪,优点是去除透明的图片,减少空间浪费,缺点是面数增加

Full Rect:矩形的mesh,优点是面数少,但是浪费空间

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值