当前位置:   article > 正文

获取 挂载有Content Size Fitter 组件的UI物体的 宽 和 高_unity contentsizefit加上后 content没有高度

unity contentsizefit加上后 content没有高度

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


添加应用

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);
        }
    }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/110384
推荐阅读
相关标签
  

闽ICP备14008679号