RenderTextureによるUIスクリーンのぼやけ問題

1）RenderTextureによるUIスクリーンのぼやけ問題
2）Unity 2019ToLuaエクスポートParticleSystemが異常
3）Android 10でのUWAGOTスクリーンショットの問題
4）Addressables.CheckForCatalogUpdatesおよびAddressables.GetDownloadSizeAsyncに関する問題
5）RenderDocでHuaweiのフレームをキャプチャすることはできない

---

 
## Rendering
**Q：UIスクリーンのぼやけを確認するにはどうすればよいですか？緑が表示され、紫も点滅しています。下の図に示すように、黒の背景と紫が点滅しており、スクリーンショットを撮ることができません。これは実機にしか表示されません。エミュレータでは問題なく表示されます。**
 
**この黒い背景は、SRPによって実装されたRenderTextureのBlur効果であり、使用されるデバイスはXiaomiK30です。**

![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/e2bd1042-63e4-d951-6fed-472537631943.jpeg)

>A1：FrameDebuggerで問題がある実行Shaderを特定することをお勧めします。問題があるのは、Shaderのレンダリング実行順序が間違っている可能性があります。RenderPassEvent設定が正しいかどうかを確認してください。
 
>A2：問題が見つかりました。RenderTexture.GetTemporaryが使用され、depthBufferパラメーターが16に渡されますが、0なら問題なくなります。

---

## Lua

**Q：下図に示すように、Unity 2019 ToluaによってエクスポートされたParticleSystemは異常になります。**

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/32dd7947-9047-7885-e368-b6e624eb31ec.png)

**ここのTypeはnullであるため、ParticleSystemをエクスポートできません。**
 
>A：1.0.8.595でUnityランタイムライブラリ[out]でout以外のパラメータをマークする問題に対処し、公式Webサイトにアクセスして更新してください。
https://github.com/topameng/tolua/commits
topameng committed on 19 Jun 2020
 
## Android

**Q：UWAはAndroid 10でスクリーンショット機能を正常に使用できません。ドキュメントに従ってManifestを配置しました。**
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/1408f517-0032-8bb0-4040-ee1fae2c825e.png)


 
>A：これは、UWA GOT Onlineパッケージ化のWrite権限の問題に対する解決策であり、スクリーンショットの問題を解決することはできません。現在、Android 10システムを搭載した実機では、APKによって設定されたTargetSDKVersion <= 28の場合にのみスクリーンショットすることができます。TargetSDKVersionは<= 28（28はAndroid 9）に設定されており、APKは引き続きAndroid10で実行できます。

 
## Addressable

**Q：Addressables.CheckForCatalogUpdatesとAddressables.GetDownloadSizeAsyncが常にAsyncOperationStatus.Succeededを返すのはなぜですか？**
 
**httpサーバーを開いていませんが、それでも成功に返します。元々、Addressables.CheckForCatalogUpdates
とAddressables.GetDownloadSizeAsyncを使用して、アセットを更新する必要があるかどうかを判断しましたが、httpサーバーさえ開いていませんが、正常に返され、更新する必要がないことが検出されました。どのように対処しますか？**
 
**Addressableバージョン1.16.15
Unity 2018.4.14f**
 
>A1：コードをチェックした最後、CheckCatalogsOperationのExecuteメソッドに、直接にComplete（result、true、null）;のように返したため、常に成功していることがわかりました。
 
>A2：Addressables.CheckForCatalogUpdatesは、「catalog ids」のリストを返し、更新があるかどうかを判断します。リストが存在するかどうかを判断するのに十分です。
httpサーバーが開いていない場合は、更新する必要はなく、更新することもできません。GetDownloadSizeAsyncは、最新のCatalogのAssetBundleのhashとダウンロードされたAssetBundleのhashと比較して、ダウンロードする必要があるかどうかを判断し、ダウンロードする必要がある場合はSizeを累積します。catalogは更新されていないため、当然、カタログとは関係ありません。
どのように対処するかは、ビジネスレイヤーがどのように設計したいかによって異なります。例えば：
更新サーバーが開いているかどうかにかかわらず、ゲームに入ったのは、現在のCheckForCatalogUpdatesリターンリストが空で、更新する必要はないと見なされ、実行を続行します。
更新サービスがオンラインである必要がある場合、外部プログラムでサーバーが働いてしているかどうかを判断し、ゲーム更新ロジックに入ります。
 
## Rendering

**Q：最近、レンダリング深度が正しくないという問題が発生しました。 Snapdragonモデルでのレンダリングが間違っており（エディターと一致していない）、HuaweiモデルとiOSでのレンダリングが正しいです。そこで、RenderDocを使用してフレームをキャプチャして両者の違いを比較します。どちらのステップが異なるかを確認したいと思います。**
 
**同じパッケージをSnapdragonモデル（約数十MBのデータを含む.rdcファイル）ではキャプチャできますが、Huaweiモデル（約3MBのデータのみを含む.rdcファイル）ではキャプチャされたのは黒いであることがわかりました。**
 
**RenderDocのIssueにそれと似た問題を見つけました。おそらくこの問題が解決されていないようです。
[https://github.com/baldurk/renderdoc/issues/2106](https://github.com/baldurk/renderdoc/issues/2106)**
 
テスト環境：
Unity 2018.4 / Unity 2019.4
OpenGL ES3（Vulkanを使用している場合は、Huaweiで通常どおりフレームをキャプチャすることもできます）
 
1プラスのフレームキャプチャ結果：
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/84ec3ec7-3c75-973d-903f-40b500b24590.png)


Huaweiのフレームキャプチャ結果：
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653855/f516bce3-cff7-03ad-587b-3331b3f42e05.png)


>A： Mali Gpuを搭載したOPPOがフレームキャプチャができると発見しました、Huaweiでこの問題を確認し続けることはできません。
ただし、考察するうちに、改訂されたRenderDocはHuaweiでフレームをキャプチャできると発見しました。
https://developer.huawei.com/consumer/cn/forum/topic/0203337632069160300

---
UWA Technologyは、モバイル/VRなど様々なゲーム開発者向け、**パフォーマンス分析**と**最適化ソリューション**及び**コンサルティングサービス**を提供している会社でございます。

今なら、UWA GOTローカルツールが**15日間に無償試用**できます！！
よければ、ぜひ！

UWA公式サイト：https://jp.uwa4d.com
UWA GOT OnlineレポートDemo：https://jp.uwa4d.com/u/got/demo.html
UWA公式ブログ：https://blog.jp.uwa4d.com