最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity?UGUI的MaskableGraphic可遮罩圖形組件介紹使用

 更新時間:2023年07月26日 11:26:48   作者:AlianBlank  
這篇文章主要為大家介紹了Unity?UGUI的MaskableGraphic可遮罩圖形組件介紹使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

Unity UGUI的MaskableGraphic(可遮罩圖形)組件的介紹及使用

1. 什么是MaskableGraphic組件?

MaskableGraphic是Unity UGUI中的一個組件,用于實現(xiàn)圖形的遮罩效果。通過該組件,我們可以將一個圖形對象的顯示范圍限制在一個指定的區(qū)域內,從而實現(xiàn)遮罩效果。

2. MaskableGraphic組件的工作原理

MaskableGraphic組件的工作原理是通過將圖形對象與遮罩對象進行相交運算,將圖形對象的顯示范圍限制在遮罩對象的范圍內。具體的工作流程如下:

  • 首先,將遮罩對象設置為圖形對象的父對象,并將遮罩對象的RectTransform組件的大小設置為所需的遮罩范圍。
  • 然后,將圖形對象的MaskableGraphic組件的屬性設置為true,表示該圖形對象可被遮罩。
  • 最后,將圖形對象的RectTransform組件的位置和大小設置為所需的顯示位置和大小。

3. MaskableGraphic組件的常用屬性

  • maskable:是否可被遮罩,設置為true表示可被遮罩,設置為false表示不可被遮罩。
  • maskMaterial:遮罩使用的材質。
  • maskInteraction:遮罩的交互方式,可選值有None、VisibleInsideMask和VisibleOutsideMask。

4. MaskableGraphic組件的常用函數(shù)

  • SetMaterialDirty():標記材質為臟,使其在下一幀重新渲染。
  • SetVerticesDirty():標記頂點為臟,使其在下一幀重新生成。
  • SetLayoutDirty():標記布局為臟,使其在下一幀重新布局。
  • SetAllDirty():標記所有屬性為臟,使其在下一幀重新渲染、生成和布局。

5. 完整例子代碼

例子1:創(chuàng)建一個遮罩圖形

using UnityEngine;
using UnityEngine.UI;
public class Example1 : MonoBehaviour
{
    public GameObject maskObject;
    public GameObject graphicObject;
    private void Start()
    {
        graphicObject.transform.SetParent(maskObject.transform);
        graphicObject.GetComponent<MaskableGraphic>().maskable = true;
    }
}

操作步驟:

  • 創(chuàng)建一個空的GameObject,命名為MaskObject。
  • 創(chuàng)建一個需要遮罩的圖形對象,命名為GraphicObject。
  • 將GraphicObject的MaskableGraphic組件的maskable屬性設置為true。
  • 將GraphicObject的父對象設置為MaskObject。

例子2:設置遮罩使用的材質

using UnityEngine;
using UnityEngine.UI;
public class Example2 : MonoBehaviour
{
    public GameObject maskObject;
    public GameObject graphicObject;
    public Material maskMaterial;
    private void Start()
    {
        graphicObject.transform.SetParent(maskObject.transform);
        MaskableGraphic maskableGraphic = graphicObject.GetComponent<MaskableGraphic>();
        maskableGraphic.maskable = true;
        maskableGraphic.maskMaterial = maskMaterial;
    }
}

操作步驟:

  • 創(chuàng)建一個空的GameObject,命名為MaskObject。
  • 創(chuàng)建一個需要遮罩的圖形對象,命名為GraphicObject。
  • 將GraphicObject的MaskableGraphic組件的maskable屬性設置為true。
  • 將GraphicObject的MaskableGraphic組件的maskMaterial屬性設置為所需的材質。
  • 將GraphicObject的父對象設置為MaskObject。

例子3:設置遮罩的交互方式

using UnityEngine;
using UnityEngine.UI;
public class Example3 : MonoBehaviour
{
    public GameObject maskObject;
    public GameObject graphicObject;
    private void Start()
    {
        graphicObject.transform.SetParent(maskObject.transform);
        MaskableGraphic maskableGraphic = graphicObject.GetComponent<MaskableGraphic>();
        maskableGraphic.maskable = true;
        maskableGraphic.maskInteraction = MaskableGraphic.MaskInteraction.VisibleInsideMask;
    }
}

操作步驟:

  • 創(chuàng)建一個空的GameObject,命名為MaskObject。
  • 創(chuàng)建一個需要遮罩的圖形對象,命名為GraphicObject。
  • 將GraphicObject的MaskableGraphic組件的maskable屬性設置為true。
  • 將GraphicObject的MaskableGraphic組件的maskInteraction屬性設置為所需的交互方式。
  • 將GraphicObject的父對象設置為MaskObject。

例子4:標記材質為臟

using UnityEngine;
using UnityEngine.UI;
public class Example4 : MonoBehaviour
{
    public GameObject graphicObject;
    private void Update()
    {
        graphicObject.GetComponent<MaskableGraphic>().SetMaterialDirty();
    }
}

操作步驟:

  • 創(chuàng)建一個需要遮罩的圖形對象,命名為GraphicObject。
  • 在Update函數(shù)中調用GraphicObject的MaskableGraphic組件的SetMaterialDirty函數(shù)。

例子5:標記頂點為臟

using UnityEngine;
using UnityEngine.UI;
public class Example5 : MonoBehaviour
{
    public GameObject graphicObject;
    private void Update()
    {
        graphicObject.GetComponent<MaskableGraphic>().SetVerticesDirty();
    }
}

操作步驟:

  • 創(chuàng)建一個需要遮罩的圖形對象,命名為GraphicObject。
  • 在Update函數(shù)中調用GraphicObject的MaskableGraphic組件的SetVerticesDirty函數(shù)。

注意事項

  • 遮罩對象的RectTransform組件的大小應與遮罩范圍一致,否則可能導致遮罩效果不準確。
  • 遮罩對象和圖形對象的層級關系應正確設置,否則可能導致遮罩效果無法生效。
  • 遮罩對象和圖形對象的位置和大小應正確設置,否則可能導致遮罩效果不符合預期。

參考資料

Unity官方文檔:MaskableGraphic

以上就是Unity UGUI的MaskableGraphic可遮罩圖形組件介紹使用的詳細內容,更多關于Unity UGUI可遮罩圖形組件的資料請關注腳本之家其它相關文章!

相關文章

  • C#數(shù)組中List, Dictionary的相互轉換問題

    C#數(shù)組中List, Dictionary的相互轉換問題

    這篇文章主要介紹了C#數(shù)組中List, Dictionary的相互轉換問題,本文給大家介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下
    2016-12-12
  • VsCode使用EmmyLua插件調試Unity工程Lua代碼的詳細步驟

    VsCode使用EmmyLua插件調試Unity工程Lua代碼的詳細步驟

    這篇文章主要介紹了VsCode使用EmmyLua插件調試Unity工程Lua代碼,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • unity shader實現(xiàn)玻璃折射效果

    unity shader實現(xiàn)玻璃折射效果

    這篇文章主要為大家詳細介紹了unity shader實現(xiàn)玻璃折射效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Unity3D實現(xiàn)飛機大戰(zhàn)游戲(1)

    Unity3D實現(xiàn)飛機大戰(zhàn)游戲(1)

    這篇文章主要為大家詳細介紹了Unity3D實現(xiàn)飛機大戰(zhàn)游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • 基于C#實現(xiàn)XRC異或冗余校驗的實踐指南

    基于C#實現(xiàn)XRC異或冗余校驗的實踐指南

    XRC是一種基于按位異或(XOR)運算的輕量級數(shù)據(jù)校驗方法,它通過對數(shù)據(jù)塊中所有字節(jié)(或字)進行連續(xù)異或運算,生成一個固定長度的校驗值,本文給大家介紹了基于C#實現(xiàn)XRC異或冗余校驗的實踐指南,需要的朋友可以參考下
    2026-05-05
  • C#服務端圖片打包下載實現(xiàn)代碼解析

    C#服務端圖片打包下載實現(xiàn)代碼解析

    這篇文章主要介紹了C#服務端圖片打包下載實現(xiàn)代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • C#多線程之線程鎖

    C#多線程之線程鎖

    這篇文章介紹了C#多線程中的線程鎖,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#單例模式(Singleton Pattern)實例教程

    C#單例模式(Singleton Pattern)實例教程

    這篇文章主要介紹了C#單例模式(Singleton Pattern)的實現(xiàn)方法,主要講述了即時加載的單例模式、延遲加載的單例模式與線程安全的單例模式,需要的朋友可以參考下
    2014-09-09
  • Unity實現(xiàn)10天簽到系統(tǒng)

    Unity實現(xiàn)10天簽到系統(tǒng)

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)10天簽到系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • C#實現(xiàn)幾十萬級數(shù)據(jù)導出Excel及Excel各種操作實例

    C#實現(xiàn)幾十萬級數(shù)據(jù)導出Excel及Excel各種操作實例

    本篇文章主要介紹了C#實現(xiàn)幾十萬級數(shù)據(jù)導出Excel及Excel各種操作實例,這里整理了詳細的代碼,有需要的小伙伴可以參考下。
    2017-02-02

最新評論

宝坻区| 临西县| 景泰县| 汨罗市| 航空| 宝坻区| 辽中县| 九台市| 鸡东县| 肇州县| 崇文区| 安陆市| 新巴尔虎右旗| 罗田县| 苍山县| 抚州市| 泗阳县| 旅游| 牟定县| 化州市| 泰顺县| 原平市| 宾川县| 曲阜市| 额敏县| 高州市| 托克托县| 留坝县| 内江市| 云安县| 陵水| 曲水县| 绍兴市| 桑植县| 仁怀市| 阿坝| 安达市| 马山县| 松潘县| 成安县| 岳阳市|