【问题标题】:Unity WebCamTexture not working on Sony Xperia Z1Unity WebCamTexture 不适用于 Sony Xperia Z1
【发布时间】:2019-10-02 23:58:16
【问题描述】:

我正在 Unity 上试验网络摄像头,但它不会在 Sony Xperia Z1 上显示任何图像,关于如何使它工作的任何想法?

public class CameraScript : MonoBehaviour
{
    public Text text;
    public RawImage projection;
    private WebCamTexture mycam;
    private string camName = "";

    void Start()
    {
        WebCamDevice[] devices = WebCamTexture.devices;
        // Finds Back Camera
        for (int i = 0; i < devices.Length; i++)
        {
            text.text += "\r\n" + devices[i].name;
            if (!devices[i].isFrontFacing)
            {
                camName = devices[i].name;
                text.text += " (B)";
            }
        }

        mycam = new WebCamTexture(camName);
        if (Permission.HasUserAuthorizedPermission(Permission.Camera))
        {
            // Starts Camera
            mycam.Play();
            projection.texture = mycam;
        }
        else if (!Permission.HasUserAuthorizedPermission(Permission.Camera))
        {
            // Permission not granted
            text.text = "Permission error";
        }
    }

    public void Click()
    {
        if (mycam.isPlaying)
        {
            mycam.Stop();
        }
        mycam.Play();
    }
}

【问题讨论】:

    标签: android unity3d android-permissions webcam


    【解决方案1】:

    我似乎找不到您的脚本有什么问题。

    我使用过一次以下脚本,它运行良好。试试看,我还使用检查来查看 cam 是否可用。只是以防万一,您的应用可能无法使用 cam。

    public class PhoneCam : MonoBehaviour
    {
        private bool isCamAvailable;
        private WebCamTexture backCam;
        private Texture defaultBackground;
    
        public RawImage background;
    
    
        void Start()
        {
    
            defaultBackground = background.texture;
    
            WebCamDevice[] devices = WebCamTexture.devices;
    
            if(devices.Length == 0)
            {
                print("No Devices");
                isCamAvailable = 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 (devices.Length == 0)
            {
                print("Unable to find back camera");
                return;
            }
    
            backCam.Play();
            background.texture = backCam;
    
            isCamAvailable = true;
        }
    
        void Update()
        {
            if(!isCamAvailable)
            {
                return;
            }
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-16
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多