Я разрабатываю игру для iPhone на основе фотографий в Unity и сталкиваюсь с проблемой разрешения при доступе к камере устройства.Живое изображение, отображаемое в текстуру, заметно пикселируется, а фотография, когда она берется и сохраняется в фотогалерее, аналогично пикселируется.Кажется, что изображение, которое визуализируется в текстуре, имеет более низкое разрешение, чем собственное разрешение камеры / экрана, но я не уверен, почему это так.Как я могу решить эту проблему?Спасибо!
using UnityEngine;
using UnityEngine.UI;
public class PhoneCamera : MonoBehaviour
{
private bool camAvailable;
private Texture defaultBackground;
public static WebCamTexture backCam { get; set; }
public RawImage background;
public AspectRatioFitter fit;
private void Start ()
{
defaultBackground = background.texture;
WebCamDevice [] devices = WebCamTexture.devices;
if (devices.Length == 0) {
Debug.Log ("No camera detected");
camAvailable = false;
return;
}
for (int i = 0; i < devices.Length; i++) {
if (!devices [i].isFrontFacing) {
backCam = new WebCamTexture (devices [i].name, Screen.width, Screen.height);
}
}
if (backCam == null) {
Debug.Log ("Unable to find back camera");
return;
}
backCam.Play ();
background.texture = backCam;
camAvailable = true;
}
private void Update ()
{
if (!camAvailable)
return;
float ratio = (float)backCam.width / (float)backCam.height;
fit.aspectRatio = ratio;
float scaleY = backCam.videoVerticallyMirrored ? -1f : 1f;
background.rectTransform.localScale = new Vector3 (1f, scaleY, 1f);
int orient = -backCam.videoRotationAngle;
background.rectTransform.localEulerAngles = new Vector3 (0, 0, orient);
}
}