Я работаю с Google Картоном в единстве. В моей главной сцене у меня есть skybox с изображением в виде текстуры. Как я могу получить цвет пикселя, который я ищу? Skybox - это элемент mainCamera, то есть ребенок «Голова». Я положил также GvrReticle как ребенок головы; это полезно для моей цели? СпасибоЦвет текстуры skybox unity
-3
A
ответ
0
В основном вы ожидаете окончания кадра так, чтобы камера отображала. Затем вы читаете полученные данные в текстуру и получаете центральный пиксель.
Редактировать Помните, что если у вас есть элемент пользовательского интерфейса, отображаемый в центре, он отображает цвет элемента интерфейса, а не цвет.
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);
}
}
Хорошо, спасибо. Это сработало. Но теперь у меня есть еще один вопрос: как я могу получить центральный пиксель текстуры Skybox другой камеры (не основной), которая работает, но не отображается на экране? Эта камера является «сестрой» основной камеры. Я думаю, что я должен начать с вращения «Голова», но я не знаю, как –