08.変化する画像を連続で描画



前の項で、Android(Java)のSurfaceTextureのテクスチャをUnityで描画できるようになりました。

ただし、画面に描画される画像が変わることはありませんでした。

本項では、変化する画像を連続で描画するように処理を変更します。

解説

変化する画像を連続で描画するために、すべきことは、以下です。

実装

プロジェクトを開く

07.Java側で作成したGL_TEXTURE_EXTERNAL_OESのテクスチャを、Unity側で作成したGL_TEXTURE_2Dのテクスチャに転写する方法」を実施していない場合は、実施します。

Javaクラスの編集

Javaクラスのメンバー変数部に、Surfaceに変化する画像を連続で描画するための変数を追加します。Runnable変数に関しては、run関数の定義も記述します。


Javaクラスの末尾に、以下のSurfaceでの連続描画の開始と終了の関数を追加します。


Surfaceでの描画 drawInSurface関数を、乱数を用いた描画に変更します。

Androidライブラリモジュールのビルド

Androidライブラリモジュールをビルドします。

「Gradle」ウィンドウの「SurfaceTextureRendererProject > surfacetexturerenderer > Tasks > build > build」をダブルクリックします。

モジュールのビルドが開始します。
しばらく待ちます。
Android Studio のステータスバーに「Gradle build finished in ・・・」と出るまで待ちます。

「{Androidプロジェクトフォルダ}\{Androidライブラリモジュール名}\build\outputs\aar」フォルダに、リリースビルド、デバッグビルドの2つの「aar」ファイルが生成されます。

aarファイルの配置

Androidライブラリモジュールのファイル(aarファイル)を、Unityアプリのプロジェクトに配置します。

「{Unityプロジェクトフォルダ}\Assets\Plugins\Android」フォルダに、
「{Androidプロジェクトフォルダ}\{Androidライブラリモジュール名}\build\outputs\aar」フォルダに生成済みの「aar」ファイルのリリースビルドの方を、コピ-します。

Unityスクリプトの編集

Unityアプリのプロジェクトを開きます。

RawImageScriptクラスに以下の変更を加えます。

RawImageScriptクラスの内容を以下のようにします。

実行

Build And Run

Unityアプリのプロジェクトを開きます。

Android端末をUSB接続しておきます。

メインメニュー「File > Build And Run」を選択します。

Unityアプリのビルドが開始し、ビルドが終了すると、Android端末上でUnityアプリが実行されます。

起動直後


アプリ画面のボタンを押します。
変化する画像の連続描画が開始します。


アプリ画面のボタンを再度押します。
変化する画像の連続描画が停止します。

「Android Logcat」ウィンドウを確認すると、エラーは発生していません。

ダウンロード

サンプルコード

github.com上のリポジトリページ

関連ページ

前項目:07.Java側で作成したGL_TEXTURE_EXTERNAL_OESのテクスチャを、Unity側で作成したGL_TEXTURE_2Dのテクスチャに転写する方法