Unity

2013-10-20 16 views
6

ile ilgili bir kameralı yayınım var Unity ile ilgili bir sorum var. Umarım bu daha önce cevaplanmamıştır. Bir Kamerayı (bir HD kamera gibi) bilgisayarıma bağlamak istiyorum ve video akışı Unity sahnemde görüntülenmelidir. Kameranın gerçek zamanda ne gördüğünü gösteren sanal bir televizyon ekranı gibi düşünün. Bunu nasıl yapabilirim? Google bana doğru yönde işaret etmedi, ancak belki de doğru sorguyu alamıyorum;)Unity

Umarım ne için gidiyorum.

+1

Ben Unity kullanmadıysanız, ancak akla ne gelir kameradan ham görüntü alma ve daha sonra bir dörtlü görüntülenen bir doku için bu haritasını çıkarıyor. –

+1

Hugo ne dedi. [Prime 31] (http://prime31.com/plugins) gibi bazı eklentiler, canlı akış için destek ($$$ için) sağlar. Ya da Unity'nin [webcamtexture] (http://docs.unity3d.com/Documentation/ScriptReference/WebCamTexture.html) – Jerdak

cevap

13

Evet, kesinlikle mümkün ve neyse ki Unity3D aslında kutudan oldukça iyi destekliyor. Web kamerasını bulmak ve dokuya dönüştürmek için WebCamTexture kullanabilirsiniz. Buradan, sanal televizyon ekranınız da dahil olmak üzere, 3B sahnede dokuları oluşturmayı seçebilirsiniz.

Oldukça açıklayıcı görünüyor ancak aşağıdaki kod sizi başlatmalı.

Listesi ve algıladığı Bağlı cihazları çıktısını:

var devices : WebCamDevice[] = WebCamTexture.devices; 
for(var i = 0 ; i < devices.length ; i++) 
    Debug.Log(devices[i].name); 

Bağlan ekli web kamerası ve bir doku görüntü veri göndermek: o yardımcı olur durumda

WebCamTexture webcam = WebCamTexture("NameOfDevice"); 
renderer.material.mainTexture = webcam; 
webcam.Play(); 
+0

'u aradığım şey budur, teşekkürler! –

+0

WebCamTexture'ı yenileyerek biraz değiştirmem gerekti, şu şekilde: 'WebCamTexture web kamerası = new WebCamTexture (" NameOfDevice "); – Feckmore

+1

Ağ üzerinden bunu nasıl başarabiliriz? – mebjas

2

, ben C# betiği olarak yazılan kabul edilen cevaba dayanarak bir yanıt gönderme (kabul edilen cevap JavaScript’te yapıldı). Bu komut dosyasını bir ekleyiciye eklenmiş olan bir GameObject dosyasına eklemeniz yeterlidir.

public class DisplayWebCam : MonoBehaviour 
{ 
    void Start() 
    { 
     WebCamDevice[] devices = WebCamTexture.devices; 

     // for debugging purposes, prints available devices to the console 
     for(int i = 0; i < devices.Length; i++) 
     { 
      print("Webcam available: " + devices[i].name); 
     } 

     Renderer rend = this.GetComponentInChildren<Renderer>(); 

     // assuming the first available WebCam is desired 
     WebCamTexture tex = new WebCamTexture(devices[0].name); 
     rend.material.mainTexture = tex; 
     tex.Play(); 
    } 
}