2012年11月06日

【Unity】Unity Androidの読込中のインジケータを表示する

Unityのビルド実行時、
起動に時間がかかったり、シーンからシーンへ遷移するときに端末スペックにもよるかもしれませんが、
読込時間がやたらかかるときがあります。

仕事でアプリを作成するときにiGUIを使って作成していますが、
インジケータが回る表現がぎこちなく、正直シーンがかわる直前に消えてしまうため、あまりよろしくないかなっと思いました。

できればシーンAがシーンBを読込開始した時から、
シーンBの表示が完了した時までをインジケータ表示したいなっと

イメージは以下のような
概要.jpg

準備として、
Unity用のAndroidプラグインを作成する必要があります。

ネイティブ連携と私は呼んでいます。

UnityとAndroidの連携については公式サイトにも明記してありますので一読必須ですね。

機会があれば、作成方法をまとめたいと思います。


今回は簡単にProgressDialogクラスを使って読込中っという表示を行いたいと思います。

ネイティブ連携を行うMainActivityクラスのメンバ変数に

private ProgressDialog m_progressDialog;
を定義し、アクティビティ作成時コールされるメソッドに

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        onLoadingIndicatorShow();
    }
onLoadingIndicatorShow()がインジケータ表示メソッドとなります。
こんな感じで実装しました。

/*
     * インジケータ表示
     */
    public void onLoadingIndicatorShow(){
        if(m_progressDialog == null){
            m_progressDialog = new ProgressDialog(this);
        }
        m_progressDialog.setMessage("Please wait...");
        m_progressDialog.setCancelable(false);

        m_progressDialog.show();
    }

    /*
     * インジケータ非表示
     */
    public void onLoadingIndicatorDismiss(){
        if(m_progressDialog != null){
            m_progressDialog.dismiss();
        }
    }

ネイティブ連携を行なっているので
このアクティビティがMAIN属性指定していますので、起動時に以下のように表示されます。

device-2012-11-06-134152.png

Unity上ではスプラッシュ画像は黒一枚絵をセンタリング表示しています。

読込が完了し、シーンのオブジェクトからStart()のタイミングでネイティブメソッドコールを行います。

public void UNLoadingIndicatorDismiss(){
        AndroidJavaClass aJavaClass = new AndroidJavaClass("Javaクラスのパッケージ名.MainActivity");
        AndroidJavaObject aJavaObject = aJavaClass.GetStatic<AndroidJavaObject>("currentActivity");
        aJavaObject.Call("onLoadingIndicatorDismiss");
       
        aJavaObject.Dispose();
        aJavaClass.Dispose();
    }
とよんでやると
ダイアログが非表示になり、Unityの画面が表示されます。

Show側をコールして、次のシーンの読込を開始し、次のシーンにて表示完了時にDismiss側をコールすることで
シーンからシーンへの読込中は、Androidシステムのインジケータを表示することが可能になりました。

使う?これ…



ラベル:unity
posted by ヒイロ at 14:19| 福岡 ☀| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。