我有2層:GUI層和3D層。每層都有一個攝像頭。可以將GUI.DrawTexture等GUI元素分配給特定圖層嗎?
GUI層的相機設置:
- 透明標誌:深度僅
- 剔除面膜:GUI層
- 深度:-1
- 組件:一個C#腳本
OnGUI()
邏輯 - GUILayer ,耀斑層&音頻監聽器:開啓
3D圖層的相機設置:
- 透明標誌:深度僅
- 剔除面膜:一切,但GUI層
- 深度:0
- GUILayer,火炬層&音頻監聽器:關
我的目標是顯示3D元素背後的GUI元素。如果C#腳本被移除/禁用,並且使用GUITexture
組件代替,那麼設置是可以的。但是,通過使用GUITexture
組件,很難通過腳本控制邏輯大小&。
因此,我有一些由分配給相機的腳本中的GUI.DrawTexture()
繪製的圖像。例如:
GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height),
backgroundTexture, ScaleMode.StretchToFill);
雖然該腳本作爲組件附加到GUI層,但它不會在3D對象後面繪製;而是將其繪製在3D對象的前面。
我的問題是,如何分配GUI.DrawTexture()
來繪製特定圖層/如何使圖像在3D對象後面繪製?
更新試圖在OnGUI()
GUI.Depth = -99;
不改變這種狀況。
你可以有「渲染到紋理」的代碼示例? – Raptor
我更新了我的答案,您實際上不需要任何代碼 - 只需在相機設置中使用該功能即可。 – Roberto
如果我有一個複雜的紋理(多個'GUITexture'),有些計劃成爲按鈕(有擊中測試等)?此外,我目前需要腳本才能將其縮放到不同的屏幕尺寸(我正在使用移動設備) – Raptor