Unity UGUI的ContentSizeFitter内容尺寸适应器组件使用示例

 更新时间:2023年08月04日 09:22:20   作者:AlianBlank  
这篇文章主要为大家介绍了Unity UGUI的ContentSizeFitter内容尺寸适应器组件使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Unity UGUI的ContentSizeFitter(内容尺寸适应器)组件的介绍及使用

1. 什么是ContentSizeFitter组件?

ContentSizeFitter是Unity UGUI中的一个组件,用于自动调整UI元素的大小,以适应其内容的大小变化。它可以根据内容的大小自动调整UI元素的宽度和高度,确保内容不会被截断或溢出。

2. ContentSizeFitter的工作原理

ContentSizeFitter组件通过监听UI元素的子元素的大小变化,自动调整UI元素的大小。它可以根据子元素的大小自动调整UI元素的宽度和高度,以确保子元素的内容不会被截断或溢出。

3. ContentSizeFitter的常用属性

  • Horizontal Fit:水平适应方式,可选值为Unconstrained(不限制)、Preferred Size(首选大小)和 Min Size(最小大小)。
  • Vertical Fit:垂直适应方式,可选值为Unconstrained(不限制)、Preferred Size(首选大小)和 Min Size(最小大小)。

4. ContentSizeFitter的常用函数

  • SetLayoutHorizontal():手动调用此函数可以强制更新水平适应方式。
  • SetLayoutVertical():手动调用此函数可以强制更新垂直适应方式。

5. ContentSizeFitter的使用示例

示例1:自动调整按钮大小以适应文本内容

  • 创建一个按钮,并添加一个Text组件作为子元素。
  • 将ContentSizeFitter组件添加到按钮上。
  • 将Horizontal Fit属性设置为Preferred Size,Vertical Fit属性设置为Preferred Size。

编写脚本,在Start函数中调用SetLayoutHorizontal()和SetLayoutVertical()函数。

using UnityEngine;
using UnityEngine.UI;
public class ButtonAutoSize : MonoBehaviour
{
 private Button button;
 private Text text;
 private void Start()
 {
     button = GetComponent<Button>();
     text = GetComponentInChildren<Text>();
     button.GetComponent<ContentSizeFitter>().SetLayoutHorizontal();
     button.GetComponent<ContentSizeFitter>().SetLayoutVertical();
 }
}

示例2:自动调整面板大小以适应子元素

  • 创建一个面板,并添加一些子元素。
  • 将ContentSizeFitter组件添加到面板上。
  • 将Horizontal Fit属性设置为Preferred Size,Vertical Fit属性设置为Preferred Size。

编写脚本,在Start函数中调用SetLayoutHorizontal()和SetLayoutVertical()函数。

using UnityEngine;
using UnityEngine.UI;
public class PanelAutoSize : MonoBehaviour
{
 private RectTransform panel;
 private void Start()
 {
     panel = GetComponent<RectTransform>();
     panel.GetComponent<ContentSizeFitter>().SetLayoutHorizontal();
     panel.GetComponent<ContentSizeFitter>().SetLayoutVertical();
 }
}

示例3:自动调整滚动视图大小以适应内容

  • 创建一个滚动视图,并添加一些子元素。
  • 将ContentSizeFitter组件添加到滚动视图的Content上。
  • 将Horizontal Fit属性设置为Preferred Size,Vertical Fit属性设置为Preferred Size。

编写脚本,在Start函数中调用SetLayoutHorizontal()和SetLayoutVertical()函数。

using UnityEngine;
using UnityEngine.UI;
public class ScrollViewAutoSize : MonoBehaviour
{
 private RectTransform content;
 private void Start()
 {
     content = GetComponent<ScrollRect>().content;
     content.GetComponent<ContentSizeFitter>().SetLayoutHorizontal();
     content.GetComponent<ContentSizeFitter>().SetLayoutVertical();
 }
}

示例4:自动调整网格布局大小以适应子元素

  • 创建一个网格布局,并添加一些子元素。
  • 将ContentSizeFitter组件添加到网格布局的Content上。
  • 将Horizontal Fit属性设置为Preferred Size,Vertical Fit属性设置为Preferred Size。

编写脚本,在Start函数中调用SetLayoutHorizontal()和SetLayoutVertical()函数。

using UnityEngine;
using UnityEngine.UI;
public class GridLayoutAutoSize : MonoBehaviour
{
 private GridLayoutGroup gridLayout;
 private void Start()
 {
     gridLayout = GetComponent<GridLayoutGroup>();
     gridLayout.GetComponent<ContentSizeFitter>().SetLayoutHorizontal();
     gridLayout.GetComponent<ContentSizeFitter>().SetLayoutVertical();
 }
}

示例5:自动调整水平布局大小以适应子元素

  • 创建一个水平布局,并添加一些子元素。
  • 将ContentSizeFitter组件添加到水平布局的Content上。
  • 将Horizontal Fit属性设置为Preferred Size,Vertical Fit属性设置为Preferred Size。

编写脚本,在Start函数中调用SetLayoutHorizontal()和SetLayoutVertical()函数。

using UnityEngine;
using UnityEngine.UI;
public class HorizontalLayoutAutoSize : MonoBehaviour
{
 private HorizontalLayoutGroup horizontalLayout;
 private void Start()
 {
     horizontalLayout = GetComponent<HorizontalLayoutGroup>();
     horizontalLayout.GetComponent<ContentSizeFitter>().SetLayoutHorizontal();
     horizontalLayout.GetComponent<ContentSizeFitter>().SetLayoutVertical();
 }
}

注意事项

  • ContentSizeFitter组件只能用于Layout Group(布局组)的子元素上。
  • ContentSizeFitter组件的调整是在布局计算之后进行的,因此需要手动调用SetLayoutHorizontal()和SetLayoutVertical()函数来更新布局。

参考资料

以上就是Unity UGUI的ContentSizeFitter内容尺寸适应器组件使用示例的详细内容,更多关于Unity UGUI ContentSizeFitter的资料请关注脚本之家其它相关文章!

相关文章

  • c#实现获取字符串阵列中元素最长或最短的长度

    c#实现获取字符串阵列中元素最长或最短的长度

    下面小编就为大家分享一篇c#实现获取字符串阵列中元素最长或最短的长度方法,具有很好的参考价值,希望对大家有所帮助
    2017-12-12
  • C#中执行批处理文件(*.bat)的方法代码

    C#中执行批处理文件(*.bat)的方法代码

    本文介绍一下在C#中执行批处理文件(*.bat)的方法。
    2013-03-03
  • 详解C# wpf如何嵌入hwnd窗口

    详解C# wpf如何嵌入hwnd窗口

    wpf是Direct UI,窗口中只有一个hwnd句柄,大部分控件都是直接在上面绘制的,本文主要来和大家讲讲如何嵌入hwnd窗口,感兴趣的可以了解一下
    2024-03-03
  • C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法

    C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法

    这篇文章主要介绍了C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法,涉及C#针对坐标的数学运算相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • C#中Socket与Unity相结合示例代码

    C#中Socket与Unity相结合示例代码

    这篇文章主要给大家介绍了关于C#中Socket与Unity相结合的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-10-10
  • C#泛型详解及关键字作用

    C#泛型详解及关键字作用

    这篇文章主要来讲讲c#中的泛型,因为泛型在c#中有很重要的位置,对于写出高可读性,高性能的代码有着关键的作用,大家都知道泛型公共语言运行库是非常重要功能,那么为什么使用泛型呢,带着这个问题一起通过本文学习下吧
    2021-08-08
  • C#使用Task实现执行并行任务的原理的示例详解

    C#使用Task实现执行并行任务的原理的示例详解

    Task是一个表示异步操作的类,它提供了一种简单、轻量级的方式来创建多线程应用程序。本文就来和大家聊聊在C#中如何使用Task执行并行任务吧
    2023-04-04
  • C# 设计模式系列教程-组合模式

    C# 设计模式系列教程-组合模式

    组合模式可以使客户端调用简单,它可以一致使用组合结构或是其中单个对象,简化了客户端代码。
    2016-06-06
  • Unity制作游戏自定义按键详解

    Unity制作游戏自定义按键详解

    这篇文章主要介绍了在Unity中如何实现游戏自定义按键,文中的示例代码讲解详细,对我们学习Unity有一定帮助,感兴趣的可以跟随小编学习一下
    2022-01-01
  • c# 根据NPOI 读取一个excel 文件的多个Sheet

    c# 根据NPOI 读取一个excel 文件的多个Sheet

    这篇文章主要介绍了c# 根据NPOI 读取一个excel 文件的多个Sheet,帮助大家更好的利用c#处理excel表格,感兴趣的朋友可以了解下
    2020-12-12

最新评论