-3
我正在与统一的谷歌纸板。 在我的主场景中,我有一个带有图像纹理的天空盒。 如何获得我正在寻找的像素的颜色? 天空盒是mainCamera的一个元素,即“头”的孩子。 我也把GvrReticle当成孩子的头;对我的目的有用吗? 谢谢纹理天空盒团结的颜色
我正在与统一的谷歌纸板。 在我的主场景中,我有一个带有图像纹理的天空盒。 如何获得我正在寻找的像素的颜色? 天空盒是mainCamera的一个元素,即“头”的孩子。 我也把GvrReticle当成孩子的头;对我的目的有用吗? 谢谢纹理天空盒团结的颜色
基本上你等待帧的结束,以便相机已经呈现。然后,将渲染的数据读入纹理并获取中心像素。
编辑请注意,如果您有一个在中心呈现的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);
}
}
好的,谢谢。有效。但现在我有另一个问题:我怎样才能得到正在运行但不在屏幕上呈现的另一个摄像头(不是主)的天空盒纹理的中心像素?这款相机是主相机的“姊妹”。我想我应该从“头”的轮换开始,但我不知道如何 –