欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Unity UGUI的GridLayoutGroup網(wǎng)格布局組件使用詳解

 更新時間:2023年07月11日 09:29:48   作者:AlianBlank  
這篇文章主要介紹了Unity UGUI的GridLayoutGroup網(wǎng)格布局組件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

1. 什么是GridLayoutGroup組件?

GridLayoutGroup是Unity UGUI中的一種布局組件,用于在UI界面中創(chuàng)建網(wǎng)格布局。

它可以根據(jù)指定的行數(shù)、列數(shù)和間距自動排列子物體,使它們按照網(wǎng)格的形式排列。

2. GridLayoutGroup的工作原理

GridLayoutGroup組件會根據(jù)指定的行數(shù)和列數(shù),將子物體按照從左到右、從上到下的順序排列。

它還可以設(shè)置間距,控制子物體之間的間隔。

當(dāng)子物體的數(shù)量超過網(wǎng)格的容量時,GridLayoutGroup會自動創(chuàng)建新的行或列來容納多余的子物體。

3. GridLayoutGroup的常用屬性

  • Cell Size:指定每個單元格的大小。
  • Spacing:指定子物體之間的間距。
  • Start Corner:指定網(wǎng)格的起始角落。
  • Start Axis:指定網(wǎng)格的起始軸線。
  • Constraint:指定網(wǎng)格的約束方式,可以是按行約束或按列約束。
  • Constraint Count:指定每行或每列的最大子物體數(shù)量。

4. GridLayoutGroup的常用函數(shù)

  • CalculateLayoutInputHorizontal():計算水平方向上的布局。
  • CalculateLayoutInputVertical():計算垂直方向上的布局。
  • SetLayoutHorizontal():設(shè)置水平方向上的布局。
  • SetLayoutVertical():設(shè)置垂直方向上的布局。

5. 示例代碼

示例1:創(chuàng)建一個2x2的網(wǎng)格布局

using UnityEngine;
using UnityEngine.UI;
public class GridLayoutExample : MonoBehaviour
{
    public GridLayoutGroup gridLayout;
    public GameObject prefab;
    void Start()
    {
        gridLayout.constraint = GridLayoutGroup.Constraint.FixedColumnCount;
        gridLayout.constraintCount = 2;
        for (int i = 0; i < 4; i++)
        {
            Instantiate(prefab, transform);
        }
    }
}

操作步驟:

  • 創(chuàng)建一個空的GameObject,并將GridLayoutExample腳本掛載上去。
  • 在Inspector面板中,將GridLayoutGroup組件拖拽到gridLayout變量上。
  • 創(chuàng)建一個預(yù)制體,將其拖拽到prefab變量上。
  • 運(yùn)行游戲,可以看到預(yù)制體按照2x2的網(wǎng)格布局排列。

注意事項:

  • 需要提前創(chuàng)建好預(yù)制體,并將其拖拽到prefab變量上。

示例2:創(chuàng)建一個3x3的網(wǎng)格布局,并設(shè)置間距

using UnityEngine;
using UnityEngine.UI;
public class GridLayoutExample : MonoBehaviour
{
    public GridLayoutGroup gridLayout;
    public GameObject prefab;
    void Start()
    {
        gridLayout.constraint = GridLayoutGroup.Constraint.FixedColumnCount;
        gridLayout.constraintCount = 3;
        gridLayout.spacing = new Vector2(10, 10);
        for (int i = 0; i < 9; i++)
        {
            Instantiate(prefab, transform);
        }
    }
}

操作步驟:

  • 創(chuàng)建一個空的GameObject,并將GridLayoutExample腳本掛載上去。
  • 在Inspector面板中,將GridLayoutGroup組件拖拽到gridLayout變量上。
  • 創(chuàng)建一個預(yù)制體,將其拖拽到prefab變量上。
  • 運(yùn)行游戲,可以看到預(yù)制體按照3x3的網(wǎng)格布局排列,并且有間距。

注意事項:

  • 需要提前創(chuàng)建好預(yù)制體,并將其拖拽到prefab變量上。

示例3:創(chuàng)建一個自適應(yīng)的網(wǎng)格布局

using UnityEngine;
using UnityEngine.UI;
public class GridLayoutExample : MonoBehaviour
{
    public GridLayoutGroup gridLayout;
    public GameObject prefab;
    void Start()
    {
        gridLayout.constraint = GridLayoutGroup.Constraint.Flexible;
        gridLayout.spacing = new Vector2(10, 10);
        for (int i = 0; i < 10; i++)
        {
            Instantiate(prefab, transform);
        }
    }
}

操作步驟:

  • 創(chuàng)建一個空的GameObject,并將GridLayoutExample腳本掛載上去。
  • 在Inspector面板中,將GridLayoutGroup組件拖拽到gridLayout變量上。
  • 創(chuàng)建一個預(yù)制體,將其拖拽到prefab變量上。
  • 運(yùn)行游戲,可以看到預(yù)制體按照自適應(yīng)的網(wǎng)格布局排列,并且有間距。

注意事項:

  • 需要提前創(chuàng)建好預(yù)制體,并將其拖拽到prefab變量上。

示例4:動態(tài)改變網(wǎng)格布局的行數(shù)和列數(shù)

using UnityEngine;
using UnityEngine.UI;
public class GridLayoutExample : MonoBehaviour
{
    public GridLayoutGroup gridLayout;
    public GameObject prefab;
    void Start()
    {
        gridLayout.constraint = GridLayoutGroup.Constraint.FixedRowCount;
        gridLayout.constraintCount = 2;
        for (int i = 0; i < 4; i++)
        {
            Instantiate(prefab, transform);
        }
        Invoke("ChangeConstraintCount", 3f);
    }
    void ChangeConstraintCount()
    {
        gridLayout.constraintCount = 3;
    }
}

操作步驟:

  • 創(chuàng)建一個空的GameObject,并將GridLayoutExample腳本掛載上去。
  • 在Inspector面板中,將GridLayoutGroup組件拖拽到gridLayout變量上。
  • 創(chuàng)建一個預(yù)制體,將其拖拽到prefab變量上。
  • 運(yùn)行游戲,可以看到預(yù)制體按照2x2的網(wǎng)格布局排列。
  • 3秒后,網(wǎng)格布局的列數(shù)會變?yōu)?,預(yù)制體會按照3x2的網(wǎng)格布局排列。

注意事項:

  • 需要提前創(chuàng)建好預(yù)制體,并將其拖拽到prefab變量上。

示例5:動態(tài)改變網(wǎng)格布局的間距

using UnityEngine;
using UnityEngine.UI;
public class GridLayoutExample : MonoBehaviour
{
    public GridLayoutGroup gridLayout;
    public GameObject prefab;
    void Start()
    {
        gridLayout.constraint = GridLayoutGroup.Constraint.FixedColumnCount;
        gridLayout.constraintCount = 2;
        gridLayout.spacing = new Vector2(10, 10);
        for (int i = 0; i < 4; i++)
        {
            Instantiate(prefab, transform);
        }
        Invoke("ChangeSpacing", 3f);
    }
    void ChangeSpacing()
    {
        gridLayout.spacing = new Vector2(20, 20);
    }
}

操作步驟:

  • 創(chuàng)建一個空的GameObject,并將GridLayoutExample腳本掛載上去。
  • 在Inspector面板中,將GridLayoutGroup組件拖拽到gridLayout變量上。
  • 創(chuàng)建一個預(yù)制體,將其拖拽到prefab變量上。
  • 運(yùn)行游戲,可以看到預(yù)制體按照2x2的網(wǎng)格布局排列,并且有間距。
  • 3秒后,網(wǎng)格布局的間距會變?yōu)?20, 20),預(yù)制體會按照2x2的網(wǎng)格布局排列,并且間距變大。

注意事項:

  • 需要提前創(chuàng)建好預(yù)制體,并將其拖拽到prefab變量上。

參考資料

以上就是Unity UGUI的GridLayoutGroup網(wǎng)格布局組件使用詳解的詳細(xì)內(nèi)容,更多關(guān)于Unity UGUI GridLayoutGroup的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#使用SevenZipSharp實現(xiàn)壓縮文件和目錄

    C#使用SevenZipSharp實現(xiàn)壓縮文件和目錄

    SevenZipSharp壓縮/解壓(.7z?.zip)”是指使用SevenZipSharp庫進(jìn)行7z和zip格式的文件壓縮與解壓縮操作,SevenZipSharp是C#語言封裝的7-Zip?API,它使得在.NET環(huán)境中調(diào)用7-Zip的功能變得簡單易行,本文給大家介紹了C#使用SevenZipSharp實現(xiàn)壓縮文件和目錄
    2025-01-01
  • C#給文字換行的小技巧

    C#給文字換行的小技巧

    這篇文章主要介紹了C#給文字換行的小技巧,本文直接給出實現(xiàn)代碼,例子蠻簡單,一看就懂啦,需要的朋友可以參考下
    2015-06-06
  • C#實現(xiàn) Server-sent Events的步驟

    C#實現(xiàn) Server-sent Events的步驟

    這篇文章主要介紹了C#實現(xiàn) Server-sent Events的步驟,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • C#調(diào)用攝像頭實現(xiàn)拍照功能的示例代碼

    C#調(diào)用攝像頭實現(xiàn)拍照功能的示例代碼

    這篇文章主要介紹了C#調(diào)用攝像頭實現(xiàn)拍照功能的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • C#使用iTextSharp從PDF文檔獲取內(nèi)容的方法

    C#使用iTextSharp從PDF文檔獲取內(nèi)容的方法

    這篇文章主要介紹了C#使用iTextSharp從PDF文檔獲取內(nèi)容的方法,涉及C#基于iTextSharp操作pdf文件的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • 詳解如何在C#中使用投影(Projection)

    詳解如何在C#中使用投影(Projection)

    這篇文章主要介紹了詳解如何在C#中使用投影(Projection),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • C#編寫一個網(wǎng)游客戶端的完整步驟

    C#編寫一個網(wǎng)游客戶端的完整步驟

    這篇文章主要給大家介紹了關(guān)于C#編寫一個網(wǎng)游客戶端的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-11-11
  • C#實現(xiàn)的簡單整數(shù)四則運(yùn)算計算器功能示例

    C#實現(xiàn)的簡單整數(shù)四則運(yùn)算計算器功能示例

    這篇文章主要介紹了C#實現(xiàn)的簡單整數(shù)四則運(yùn)算計算器功能,涉及C#界面布局、事件響應(yīng)及數(shù)值運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • C#隱藏控制臺鍵盤輸入的方法

    C#隱藏控制臺鍵盤輸入的方法

    這篇文章主要介紹了C#隱藏控制臺鍵盤輸入的方法,涉及C#針對系統(tǒng)底層調(diào)用的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • C#數(shù)據(jù)庫操作的示例詳解

    C#數(shù)據(jù)庫操作的示例詳解

    這篇文章主要通過一些示例為大家詳細(xì)介紹了C#中數(shù)據(jù)庫操作用法,文中的示例代碼講解詳細(xì),具有有一定的借鑒價值,需要的可以參考一下
    2022-07-07

最新評論