強火で進め

このブログではプログラム関連の記事を中心に書いてます。

Unity でロード時のインジケーター(グルグル回る画像)を表示する方法


shinriyoさんが「iOSのインジゲーターができない」という記事を書かれていたのでアドバイスを書いてみました。

iOSのインジゲーターができない Unity - 万年素人からGeekへの道
http://d.hatena.ne.jp/shinriyo/20130208/p2

記事ではshinriyoさんはプラグインでやろうとされていますが、実は Unity には標準でインジケーターの表示する機能が有ったりします(Unity 4.0から追加された機能です)。

Unity Script Reference – Handheld.StartActivityIndicator
http://docs.unity3d.com/Documentation/ScriptReference/Handheld.StartActivityIndicator.html

C# の場合、この様なコードを書けば使えます。まぁ、画面中央にしか表示出来ないのでちょっと汎用的では無いですが…

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {
	IEnumerator Load()
	{
		#if UNITY_IPHONE
			Handheld.SetActivityIndicatorStyle(iOSActivityIndicatorStyle.Gray);
		#elif UNITY_ANDROID
			Handheld.SetActivityIndicatorStyle(AndroidActivityIndicatorStyle.Small);
		#endif

		Handheld.StartActivityIndicator();
		yield return new WaitForSeconds(0);
	}

	void OnGUI()
	{
		if( GUI.Button(new Rect(10, 10, 100, 100), "Start") ) {
			StartCoroutine(Load());
		}

		if( GUI.Button(new Rect(10, 120, 100, 100), "Stop") ) {
			Handheld.StopActivityIndicator();
		}
	}
}