UITableView
ゲーム開発者が Unity アプリに埋め込むベースの Unity プラグインを構築しています。私は再利用可能なセルをデキューする標準的なアプローチを使用しており、 にUITableViewCell
は単純なUILabel
とが含まれていUIImageView
ます。内の画像UIImageView
は、非同期リクエストを介してロードされます。
プラグインをスタンドアロンの Objective-C アプリとして起動する場合、ユーザビリティの問題はまったくありません (特に、スクロールはラグなしでうまく機能します) が、Unity 内では、ランダムに発生する「粘着性のある」スクロールの問題があります。つまり、ビューがスクロールします。しかし慣性なし。この動作を引き起こす正確なアクションを特定することはできませんでしたが、通常、一方向に非常に速くスクロールしたり、前後に短い動きをしたりすると発生します。ビューを上または下にスクロールすると、バグは消えます(「バウンス」効果をトリガーします。これにより、ハードリフレッシュが発生すると推測しています)。
here で説明されている非常によく似た問題があります。彼らが提案する修正は、置くことです
#define USE_DISPLAY_LINK_IF_AVAILABLE 0
Unity が生成した AppController.mm ファイル内。残念ながら、この修正は、プラグインを統合するゲーム開発者にとっては実行不可能です。これは、最速で最も信頼性の高いタイミング ソリューションをオフにし、ゲーム自体の遅延や一部の欠落を引き起こす他のタイミング システムへのフォールバックが必要になるためです。タッチおよび加速度計イベントの。
s をオーバーライドdrawRect
して、UITableViewCell
レンダリング時間とメモリ使用量を削減する可能性が高く、それが失敗した場合は、OpenGL でプラグインのバージョンを作成します。ただし、同様の問題があり、Objective-C または Unity 内のいずれかで、非破壊的な (上記のタイミング修正のような) より迅速な修正を知っている人がいるかどうか疑問に思っていました。どうもありがとう。