UGUI——Content Size Fitter

作者:追风剑情 发布于:2019-1-15 10:52 分类:GUI

官方文档 https://docs.unity3d.com/Manual/script-ContentSizeFitter.html

1111.png

属性说明
Horizontal Fit: 宽度约束方式
  ● Unconstrained: 不执行任何调整
  ● Min Size: 只调整组件的最小尺寸(MinWidth)
  ● Preferred Size: 根据内容调整尺寸(Width)
Vertical Fit: 高度约束方式
  ● Unconstrained: 不执行任何调整
  ● Min Size: 只调整组件的最小尺寸(MinHeight)
  ● Preferred Size: 根据内容调整尺寸(Width)

Text挂上Content Size Fitter组件后,Width与Height将不能手动设置。

1111.png


一个关联RectTransform Size的类

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 关联size
/// </summary>
public class RelevanceSizeFiter : MonoBehaviour
{
    //要关联的RectTransform
    public RectTransform relevance;
    //关联宽度
    public bool horizontalFit = false;
    //关联高度
    public bool verticalFit = false;
    //更新方法
    public UpdateMethod updateMethod;

    private RectTransform rectTransform;

    public enum UpdateMethod
    {
        Awake,
        Start,
        Update,
        LateUpdate,
    }

    private void Awake()
    {
        rectTransform = this.GetComponent<RectTransform>();
        if (updateMethod == UpdateMethod.Awake)
            DoRelevance();
    }

    private void Start()
    {
        if (updateMethod == UpdateMethod.Start)
            DoRelevance();
    }

    private void Update()
    {
        if (updateMethod == UpdateMethod.Update)
            DoRelevance();
    }

    private void LateUpdate()
    {
        if (updateMethod == UpdateMethod.LateUpdate)
            DoRelevance();
    }

    private void DoRelevance()
    {
        if (relevance == null)
            return;
        if (horizontalFit)
            UGUITool.SetRectTransformWidth(rectTransform, relevance);
        if (verticalFit)
            UGUITool.SetRectTransformHeight(rectTransform, relevance);
    }
}


标签: UGUI

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号