2018.3以降でWebCamTextureがリクエストサイズを無視したデータを投げてくる件(互換性破壊だった)


概要

タイトルの通り。

2018.3.11f1まで、事象が起こるのを確認済み。


同様の問題は2019.1b10でも発生している。



具体的にどうなるのか

iOS端末で、WebCamTextureから取得できるテクスチャサイズが最大サイズのものになる。


例えばiPadPro 12.9 2018モデルだと、2700 x 2000 くらいのテクスチャを返してくる。



対策

WebCamTextureを使わない。



レポート

今作った。



結果

レポートに対して

Hello,


Unity added support for iPhone/iPad Depth Camera, please take a look:

https://docs.unity3d.com/ScriptReference/WebCamTexture-ctor.html

https://docs.unity3d.com/ScriptReference/WebCamDevice.htmlnew 

In your Repro project you selecting last front facing device from a WebCamTexture.devices with an assumption that it will be correct one, but it is not valid with new Camera kind introduced.


・UnityのあるバージョンからiPhone/iPadのデプスカメラに対応したんだよ

・そんでそのぶんのカメラが増えてる

・現状のお前のアプリはfrontFacing かつ lastで選んでるから、Depthカメラを引いたんだよ


という回答だった。


いや、お前、それ、今まで一個しかなかったfront facing cameraを、isFrontFacingで検索してる今までのアプリ全滅するぞ、後方互換性破壊してるやんけ


と思ったが、ふーーーんなるほどー===~~~という感じで納得した。

納得いかないけど、旧来のアプリは大体死ぬが、破壊的変更ではあるが、


・front facing

・kind 

この2つを組み合わせてチェックする必要がある。


kind作るならカメラ一覧取得するときにGetDepthCameraとか作りなさいよという気持ちがMaxになりそうになるんだけど、

まーーーーーうーーーーーーーーーん、、、、ギリギリのギリギリで許す。


総評

互換性は破壊されている。俺は許すが俺の魂が赦すかな?!