[英]Draw 3D GameObject above GUI in Unity
我想在我的項目和GUI Textures中的所有其他組件前面繪制一個GameObject。
我創建了第二個“相機”,並設置了“深度”和“圖層”,但仍然無法正常工作。 希望您能幫助我找到錯誤或遺忘的內容。
這是我的MainScript,它正在繪制一個簡單的Texture:
using UnityEngine;
using System.Collections;
public class MainScript : MonoBehaviour
{
Texture2D texture;
// Use this for initialization
void Start()
{
texture = new Texture2D(Screen.width, Screen.height);
for (int y = 0; y < texture.height; y++)
{
for (int x = 0; x < texture.width; x++)
{
texture.SetPixel(x, y, Color.blue);
}
}
texture.Apply();
}
void OnGUI()
{
GUI.DrawTexture(new Rect(0, 0, texture.width, texture.height), texture);
}
}
我還創建了兩個攝像頭和一個顯示GUI紋理的GameObject。 Texture在預覽屏幕中可見,但在運行時,MainScript中繪制的Texture為前景。
我還制作了兩個我的相機對象的屏幕截圖。 看這里:
我也可以為您提供整個項目。 這只是一個基本的測試項目。
這是指向Google雲端硬盤中項目的鏈接: 下載
將camera2的深度設置為camera1.depth + 1,將camera2的清除標志設置為僅深度,將camera1的清除標志設置為skybox。 取消選中Camera2上的GUILayer,然后選中camera1中的GUILayer。 那應該做...
您不能在GUI元素的前面繪制3D對象, OnGUI
代碼始終在所有內容的頂部進行渲染。
為此,您可以使用“ 渲染紋理” (僅Unity Pro):在場景中有兩台攝像機,將3D對象放置在一台攝像機中,將此攝像機渲染為紋理,最后使用該紋理作為GUI.DrawTexture()
的源。 GUI.DrawTexture()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.