【发布时间】:2016-05-22 20:18:02
【问题描述】:
我正在使用 WebCamTexture,并在 Start 方法中启动它,然后运行另一个方法。我使用GetPixels() 获取像素,但是,它们都以(0, 0, 0) 出现。是否有任何解决方法或我可以等待的方法(Unity 似乎使用while 循环和WaitForSeconds 崩溃)。这是我当前的 Start 方法:
void Start () {
rawImage = gameObject.GetComponent<RawImage> ();
rawImageRect = rawImage.GetComponent<RectTransform> ();
webcamTexture = new WebCamTexture();
rawImage.texture = webcamTexture;
rawImage.material.mainTexture = webcamTexture;
webcamTexture.Play();
Method ();
loadingTextObject.SetActive (false);
gameObject.SetActive (true);
}
void Method(){
print (webcamTexture.GetPixels [0]);
}
这每次都会打印(0, 0, 0) 颜色。
【问题讨论】:
-
嗨,迪伦。这是 Unity 和网络摄像头的一个众所周知的问题。您实际上需要做的是等待直到报告合理的大小。在实践中,您会跳过帧,直到 yourWebCam.width 大于 100。这里有完整的解释 answers.unity3d.com/questions/773464/…
-
顺便说一句,现在大多数人只使用 NatCam assetstore.unity3d.com/en/#!/content/52154。 Unity 的网络摄像头软件很垃圾。这是他们“还没有做”的事情之一。准备好花费数周时间使用网络摄像头。
-
哦,好吧,我已经在其他地方这样做了。希望这会奏效。
-
别忘了勾选答案。
-
那行不通。我必须结合 WaitForSeconds,检查是否报告了合理的大小,以及 WaitForEndOfFrame