日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Canvas的renderMode詳解,需要具體代碼示例

在Unity中,Canvas是實現2D UI最基礎和關鍵的組件。Canvas在渲染過程中有兩種不同的模式:Screen Space和World Space。這些渲染模式在特定的情況下會更適合,我們需要根據項目需求選擇不同的模式。在這篇文章中,我們將著重介紹Canvas的兩種渲染模式以及如何使用。

    Screen Space

Screen Space是Canvas最基本的渲染模式,它直接渲染到屏幕上,在屏幕上繪制UI元素。當場景中的對象發生移動或旋轉時,UI元素的位置無法跟隨相應的變化。因此,這種模式最適用于固定的UI界面,例如游戲的主菜單、設置等。

1.1 Overlay模式

Overlay模式是Screen Space的一種渲染模式,這種模式下的UI元素會在場景中居于一個獨立的圖層中,不與場景中的其他3D物體發生交互。當相機移動時,這一層UI元素會一直停留在前方。在Overlay模式下,畫布的渲染順序由畫布組件在層級面板中的層級決定。

下面是示例代碼:

public Canvas overlayCanvas;

void Start()
{
    overlayCanvas.sortingOrder = 10;
}

登錄后復制

在這個示例中,我們通過設置畫布組件的sortingOrder屬性來決定這個畫布在渲染隊列中的位置。

1.2 Camera模式

Camera模式是Screen Space中另一種常見的渲染模式。在Camera模式下,UI元素會綁定一個獨立的相機對象,相機只渲染與該UI畫布相關的物體,而不是渲染整個畫面。這種渲染模式通常用于需要相機特效或遮擋的情況。

下面是示例代碼:

public Canvas cameraCanvas;

void Start()
{
    Camera camera = GetComponent<Camera>();
    camera.targetDisplay = 1;
    cameraCanvas.worldCamera = camera;
}

登錄后復制

在這個示例中,我們通過在場景中創建和設置了一個獨立的相機,然后將相機對象賦給Canvas的worldCamera屬性,讓UI元素只渲染通過該相機觀察的區域。

    World Space

World Space模式是另一種Canvas的渲染模式,它是基于3D空間進行渲染。相對于Screen Space模式來說,World Space模式下,UI元素會隨著場景中的物體的移動、旋轉而發生相應變化,能夠與場景中的其他3D物體交互。這種情況下一般趨向于場景建構時使用的場景UI。

2.1 Overlay模式

Overlay模式同樣支持在World Space中使用。與Screen Space Overlay相比,在World Space Overlay中,畫布和UI元素與場景的物體是處于同一個3D空間,并在屏幕所在的平面上渲染UI元素。

下面是示例代碼:

public Canvas worldCanvas;

void Start()
{
    worldCanvas.renderMode = RenderMode.WorldSpace;
    worldCanvas.transform.position = new Vector3(0f, 0f, 10f);
}

登錄后復制

在這個示例中,我們通過將Canvas組件的渲染模式設置為WorldSpace,讓UI元素隨著場景中的物體發生變化。

2.2 Camera模式

Camera模式同樣適用于World Space模式,且在一些情況下,使用Camera模式能極大的優化性能。在Camera模式下,UI元素只在Canvas所綁定的相機的可視區域中進行渲染。這種相對復雜的設置方式,使得Camera模式能夠在3D場景UDP中的大的UI操作、比如需要相機動作、場景切換等情況下,非常優秀。

下面是示例代碼:

public Canvas worldCanvas;
public Camera canvasCamera;

void Start()
{
    worldCanvas.renderMode = RenderMode.WorldSpace;
    worldCanvas.worldCamera = canvasCamera;
}

登錄后復制

在這個示例中,我們通過將Canvas的渲染模式設置為WorldSpace,然后將Canvas的worldCamera設置為綁定的Camera,來實現大量的UI交互與場景3D操作的場合。

總結

通過上述內容的講解,我們可以得知Canvas有兩種渲染模式:Screen Space和World Space,且每種模式下均支持Overlay和Camera兩種不同的渲染方式。如何選擇某種模式下的渲染模式,取決于應用的場景需求。希望通過這篇文章,大家對Unity中Canvas的使用有一個更加詳盡的了解。

分享到:
標簽:Canvas 模式 渲染 解析
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定