2016-03-13 242 views
1

我試圖在android肖像模式下顯示全屏Webcamtexture。 但當我在我的設備上建立和測試它的旋轉和videoRotationAngle是90如何在Android肖像模式下將WebcamTexture全屏顯示?

我使用RawImage作爲紋理。我在某篇文章中看到,您必須旋轉變換並找到正確的角度。但問題是,如果我旋轉RawImage UI它將不再全屏視圖。

var camImage:UnityEngine.UI.RawImage; 
    var baseRotation:Quaternion; 
    var webcamTexture:WebCamTexture; 
    var rotation:UnityEngine.UI.Text; 


function Start() { 

     webcamTexture = new WebCamTexture(Screen.width,Screen.height); 
     camImage.texture=webcamTexture; 
     camImage.material.mainTexture = webcamTexture; 
     webcamTexture.Play(); 
     rotation.text= webcamTexture.videoRotationAngle.ToString(); // to check the angle 


} 
+0

在執行任何旋轉之前,您可以獲取相機的寬度和高度,並使用它來將紋理拉伸到所需的尺寸。 我使用正交相機,所以我的代碼可能不適用於您的實現。 – LoungeKatt

回答

1

那麼你有兩種選擇:你既可以挑選縱向還是橫向的塊屏幕旋轉,或者你可以自動旋轉的對象,並根據屏幕邊界伸展它。有關更多信息,請參見Screen.height和Screen.length。

+0

我的android版本只設置爲肖像模式。轉換旋轉的問題會拉長太多,看起來不太好。 –

+0

如果您無法以不同的分辨率接收網絡攝像頭紋理,那麼就我所知,它不能全屏顯示而不失真或調整大小。 –

+0

當您在肖像模式下打開相機應用程序時,您看不到失真,這意味着它沒有硬件限制。我正在尋找類似的東西。也許它需要構建插件 –

-1

您需要翻轉並旋轉它。如果你喜歡CameraCaptureKit(https://www.assetstore.unity3d.com/en/#!/content/56673),你會看到有不同的方式來實現你想要的。在CameraCaptureKit中,有一個自定義的RawImage組件,可以使用RawImahge的UV座標來擺弄它,而不是漫過它。通過這種方式,您可以旋轉圖像90或270,並在手機以橫向模式或以往任何模式運行時不用擔心地翻轉圖像。

+0

這不是一個解決方案。這是一個廣告。這是一款30美元的付費軟件,用於解決任何試圖使用實時相機視圖的Android應用最古老和最知名的相機問題之一。該解決方案不是作者創作的一些革命性或專有創作。 – LoungeKatt

0

(mCamera.videoRotationAngle + 90) % 360將正確地旋轉紋理,然後指定localScale,交換紋理的高度和寬度以固定大小。