2016-11-25 1 views
-3

나는 골판지로 화합하고있다. 내 주요 장면에서 나는 질감이있는 하늘 상자가 있습니다. 내가 보는 픽셀의 색을 어떻게 얻을 수 있습니까? skybox는 "Head"의 자식 인 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

감사합니다. 그것은 효과가 있었다. 하지만 이제는 또 다른 질문이 있습니다 : 실행중인 화면 (카메라가 아닌)의 다른 Camera (카메라가 아닌)의 스카이 박스 텍스처의 중심 픽셀을 어떻게 얻을 수 있습니까? 이 카메라는 메인 카메라의 "자매"입니다. 나는 "머리"의 회전에서 시작해야한다고 생각하지만 어떻게 해야할지 모르겠다. –

관련 문제