2016-11-25 66 views
-3

我正在與統一的谷歌紙板。 在我的主場景中,我有一個帶有圖像紋理的天空盒。 如何獲得我正在尋找的像素的顏色? 天空盒是mainCamera的一個元素,即「頭」的孩子。 我也把GvrReticle當成孩子的頭;對我的目的有用嗎? 謝謝紋理天空盒團結的顏色

回答

0

基本上你等待幀的結束,以便相機已經呈現。然後,將渲染的數據讀入紋理並獲取中心像素。

編輯請注意,如果您有一個在中心呈現的UI元素,它將顯示UI元素顏色而不是背後的顏色。

private Texture2D tex; 
public Color center; 

void Awake() 
{ 
    StartCoroutine(GetCenterPixel()); 
} 


private void CreateTexture() 
{ 
    tex = new Texture2D(1, 1, TextureFormat.RGB24, false); 
} 

private IEnumerator GetCenterPixel() 
{ 
    CreateTexture(); 
    while (true) 
    { 
     yield return new WaitForEndOfFrame(); 
     tex.ReadPixels(new Rect(Screen.width/2f, Screen.height/2f, 1, 1), 0, 0); 
     tex.Apply(); 
     center = tex.GetPixel(0,0); 
    } 
} 
+0

好的,謝謝。有效。但現在我有另一個問題:我怎樣才能得到正在運行但不在屏幕上呈現的另一個攝像頭(不是主)的天空盒紋理的中心像素?這款相機是主相機的「姊妹」。我想我應該從「頭」的輪換開始,但我不知道如何 –