2014-01-20 84 views
2

我想在我的項目和GUI紋理的所有其他組件前面畫一個GameObject。在Unity中在GUI上繪製3D遊戲對象

我創建了第二個攝像頭並設置了深度和層,但它仍然不起作用。我希望你能幫我找到錯誤或我忘了的東西。

這裏是我的MainScript這是繪製簡單的紋理:

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紋理一個遊戲對象。紋理在預覽屏幕中可見,但在運行時,MainScript中繪製的Texture被預先設定。

我做了兩個我的相機對象的屏幕截圖。在這裏看到:

enter image description here

enter image description here

我還可以提供整個項目給你。這只是一個基本的測試項目。

這裏是鏈接在谷歌推動項目:camera2的Download

回答

0

組深入到camera1.depth + 1 1,攝像機的透明標誌只有深度和攝像機1到空中包廂的透明標誌。在Camera2中取消選中GUILayer並檢查camera1中的GUILayer。應該這樣做......

enter image description here

enter image description here

enter image description here

+0

首先非常感謝您的回覆。現在它在我的項目中工作,具體取決於您告訴我的設置。 在我的情況下,我希望在GUITextures上面有3D對象,我在C#中使用這些GUITextures。這可能嗎?在那裏,我仍然陷入困境。否則,我會用你的解決方案,但回想起來很難實現。 –

+0

我不知道你到底想要什麼。不幸的是,我有一個比你更老的版本,我在Mac上工作,所以我不能導入你的項目。 –

0

在GUI元素之前不能繪製3D對象,OnGUI代碼總是呈現在一切之上。

要做到這一點,你可以使用Render Textures(Unity Pro的只):在場景中有兩個攝像頭,把你的3D物體在一個攝像頭,使這款相機的質感,最後使用紋理作爲GUI.DrawTexture()源。