2013-10-20 14 views
6

में लाइव कैमरा फ़ीड प्रदर्शित करें मेरे पास एकता के बारे में कोई प्रश्न है। मुझे आशा है कि इससे पहले जवाब नहीं दिया गया है। मैं अपने कंप्यूटर पर एक कैमरा (एक एचडी कैमरा की तरह) कनेक्ट करना चाहता हूं और वीडियो फ़ीड को मेरे एकता दृश्य के अंदर प्रदर्शित किया जाना चाहिए। इसके बारे में एक आभासी टेलीविजन स्क्रीन की तरह सोचें, जो दिखाता है कि रीयलटाइम में कैमरा क्या देख रहा है। मैं यह कैसे कर सकता हूँ? Google ने मुझे सही दिशा में इंगित नहीं किया, लेकिन हो सकता है कि मैं सिर्फ सही प्रश्न प्राप्त करने में असमर्थ हूं;)यूनिटी

मुझे उम्मीद है कि आप समझेंगे कि मैं क्या कर रहा हूं।

+1

मैंने एकता का उपयोग नहीं किया है, लेकिन कैमरे से कच्ची छवि प्राप्त करने के बाद क्या दिमाग आता है और फिर इसे एक ट्रैक्टर पर प्रदर्शित एक बनावट में मैप कर रहा है। –

+1

क्या ह्यूगो ने कहा। कुछ प्लगइन्स, जैसे [प्राइम 31] (http://prime31.com/plugins) लाइव स्ट्रीमिंग के लिए समर्थन ($$$ के लिए) प्रदान करते हैं। या आप यूनिटी के [वेबकैक्चर] का उपयोग कर सकते हैं (http://docs.unity3d.com/Documentation/ScriptReference/WebCamTexture.html) – Jerdak

उत्तर

13

हां यह निश्चित रूप से संभव है और आपके लिए सौभाग्य से यूनिटी 3 डी वास्तव में बॉक्स से काफी अच्छी तरह से इसका समर्थन करता है। वेबकैम ढूंढने और इसे बनावट में प्रस्तुत करने के लिए आप WebCamTexture का उपयोग कर सकते हैं। वहां से आप 3 डी दृश्य में किसी भी चीज़ पर बनावट प्रस्तुत करना चुन सकते हैं, जिसमें पाठ्यक्रम की आपकी आभासी टेलीविजन स्क्रीन भी शामिल है।

यह बहुत आत्म व्याख्यात्मक दिखता है लेकिन नीचे कोड आपको शुरू करना चाहिए।

सूची और कनेक्ट किए गए डिवाइस यह पता लगाता है प्रिंट आउट:

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

कनेक्ट एक संलग्न वेब कैमरा के लिए और एक बनावट के लिए छवि डेटा भेजने:

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

यही वह है जो मैं ढूंढ रहा था, धन्यवाद !! –

+0

मुझे वेबकैमटेक्चर को नए करके थोड़ा संशोधित करना पड़ा, जैसे: 'वेबकैमटेक्चर वेबकैम = नया वेबकैमटेक्चर ("नेमऑफडिवाइस"); ' – Feckmore

+1

हम इसे नेटवर्क पर कैसे प्राप्त कर सकते हैं? – mebjas

2

मामले में यह मदद करता है में, मैं कर रहा हूँ उपरोक्त स्वीकृत उत्तर के आधार पर उत्तर पोस्ट करना, सी # स्क्रिप्ट के रूप में लिखा गया है (स्वीकृत उत्तर जावास्क्रिप्ट में था)। बस इस स्क्रिप्ट को GameObject से संलग्न करें जिसमें एक रेंडरर संलग्न है, और इसे काम करना चाहिए।

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(); 
    } 
}