2015-03-08 47 views
8

के तहत unity3d में भिन्न है मुझे अपने एंड्रॉइड डिवाइस में वेबकैमटेक्चर घूर्णन करने में कठिनाई हो रही है।वेबकैमटेक्चर रोटेशन एंड्रॉइड

यहाँ संपादक में मेरी दृश्य है: enter image description here

और यहाँ मेरे फोन में छवि है: enter image description here

आप रोटेशन और फोन और संपादक के बीच स्केलिंग में अंतर देख सकते हैं।

यहाँ कोड है:

using UnityEngine; 
using UnityEngine.UI; 
using System.Collections; 

public class Camera_pnl : MonoBehaviour { 

    //// Use this for initialization 
    WebCamTexture webCameraTexture; 

    void Start() { 
     GUITexture BackgroundTexture = gameObject.AddComponent<GUITexture>(); 
     BackgroundTexture.pixelInset = new Rect(0,0,Screen.width,Screen.height); 
     WebCamDevice[] devices = WebCamTexture.devices; 

     foreach (WebCamDevice cam in devices) 
     { 
      if (cam.isFrontFacing) 
      {  
       webCameraTexture = new WebCamTexture(cam.name); 
       webCameraTexture.deviceName = cam.name; 
       webCameraTexture.Play(); 
       BackgroundTexture.texture = webCameraTexture; 
      } 
     } 
    } 

    void Update() { 
     if (Input.GetKey (KeyCode.Escape)) { 
      Invoke("LoadGame",0.1f); 
     } 
    } 

    void LoadGame() 
    { 
     webCameraTexture.Stop(); 
     webCameraTexture = null; 
     Application.LoadLevelAsync("Game"); 
    } 
} 

कैसे मैं इतना मेरे फोन प्रदर्शित करता है webcamtexture की सही रोटेशन इस समस्या को ठीक कर सकते हैं?

+0

इस पढ़ें: http://forum.unity3d.com/threads/webcamtexture-rotated-and-flipped-on-iphone-when-applied-to-renderer-material-texture.126702/ –

उत्तर

1

आपको घुमावदार दिशा को देखने की आवश्यकता है और फिर कब्जे वाले इनपुट के पूर्वावलोकन को घुमाएं, यह रीयलटाइम में पूर्वावलोकन को घुमाकर किया जा सकता है।

int rotAngle = -webCamTexture.videoRotationAngle; 
while(rotAngle < 0) rotAngle += 360; 
while(rotAngle > 360) rotAngle -= 360; 

के बाद कोड कैमरा कैद किट है कि हम करने के लिए (https://www.assetstore.unity3d.com/en/#!/content/56673) का उपयोग एक प्लगइन से है - हम एक सामाजिक खेल/ऐप्लिकेशन के लिए इसका इस्तेमाल करते हैं उपयोगकर्ता खेल के अंदर लेने के लिए और साझा तस्वीरें जाने के लिए।

कुछ मामलों में घूर्णन 270 या 90 डिग्री होने पर आपको छवि को तब भी फ़्लिप करने की आवश्यकता है। यह एंड्रॉइड के लिए कोड है।

if(Application.platform == RuntimePlatform.Android) { 
      flipY = !webCamTexture.videoVerticallyMirrored; } 

आप ध्यान में इन कारकों लेने के लिए, आपको आपके द्वारा पिक्सल मिलता है और साथ ही webcamtexture का पूर्वावलोकन प्रस्तुत करना की जरूरत है, छवि में पिक्सल के रूप में अच्छी तरह से घुमाया जा सकता है अगर आप को बचाने के लिए करना चाहते हैं और करेंगे छवि साझा करें, पूर्वावलोकन में फ्रेम द्वारा फ्रेम करने के लिए यह एक महंगी प्रक्रिया है, यही कारण है कि फोटो को एक बार लेने के बाद आपको ऐसा करने की आवश्यकता है।

चीयर्स

संबंधित मुद्दे