获取 挂载有Content Size Fitter 组件的UI物体的 宽 和 高

本文章参考 雨松大神的文章 稍加修改


添加应用

using FitMode = UnityEngine.UI.ContentSizeFitter.FitMode;

两个核心方法  ( 把挂有Content Size Fitter 组件的物体当参数传入)

    //立即获取ContentSizeFitter的区域
    public Vector2 GetPreferredSize(GameObject obj)
    {
        LayoutRebuilder.ForceRebuildLayoutImmediate(obj.GetComponent <RectTransform>());
        return new Vector2(HandleSelfFittingAlongAxis(0,obj), HandleSelfFittingAlongAxis(1,obj));
    }
    //获取宽和高
    private float HandleSelfFittingAlongAxis(int axis,GameObject obj)
    {
        FitMode fitting = (axis == 0 ? obj.GetComponent<ContentSizeFitter>().horizontalFit : obj.GetComponent<ContentSizeFitter>().verticalFit);
        if (fitting == FitMode.MinSize)
        {
            return LayoutUtility.GetMinSize(obj.GetComponent<RectTransform>(), axis);
        }
        else
        {
            return LayoutUtility.GetPreferredSize(obj.GetComponent<RectTransform>(), axis);
        }
    }
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值