WebCamTexture报错

使用WebCamTexture把相机的画面显示到 RawImage 上

using UnityEngine;
using UnityEngine.UI;

public class WebCamTextureTest : MonoBehaviour
{
    public RawImage RawImage;
    
    private WebCamTexture _webCamTexture;
    private Color32[] _colorBuff;
    private Texture2D _texture2D;
    
    void Start()
    {
        WebCamDevice[] devices = WebCamTexture.devices;
        int length = devices.Length;
        if (length > 0)
        {
            _webCamTexture = new WebCamTexture();
        }
        _webCamTexture.Play();
    }
    
    void Update()
    {
        if (_webCamTexture != null && _webCamTexture.isPlaying && _webCamTexture.didUpdateThisFrame)
        {
            int width = _webCamTexture.width;
            int height = _webCamTexture.height;

            if (_colorBuff == null)
            {
                _colorBuff = new Color32[width * height];
            }
            
            _webCamTexture.GetPixels32(_colorBuff);
            
            if (_texture2D == null)
            {
                _texture2D = new Texture2D(width, height, TextureFormat.RGBA32, false);
            }
            _texture2D.SetPixels32(_colorBuff);
            _texture2D.Apply();
            RawImage.texture = _texture2D;
        }
    }
}

执行 WebCamTexture.Play() 报下面的错误
在这里插入图片描述
Could not start graph
Could not pause pControl

这两个错是因为摄像头被占用,需要检查代码中其他调用摄像头的地方

你可能感兴趣的:(Bug,unity)