Playmaker公式フォーラムのQAより翻訳します:
http://hutonggames.com/playmakerforum/index.php?topic=1591.0
July 17, 2012, 01:20:49 PM
質問
Playmakerでアプリケーションの終了、中断、フォーカス(onApplicationQuit, onApplicationPause and onApplicationFocus)をグローバルイベントとして登録する方法はないの?
iOSの場合onApplicatonPauseイベント(およびその引数)に対応できることは重要だし、そのタイミングでデータ保存しないといけない。これはユーザが電話を受けたときやホームボタンを押下したときに発生する。
ホントに、中断(onApplicatonPause)が自分にとっては一番重要で次に終了(onApplicationQuit)フォーカスで、最後にフォーカス(onApplicationFocus)の順でどうにかならないかな?(自分はonApplicationFocusがどの場合に発生するかもよくわかってないけど)
回答
次のスクリプトを試してみたらいけるよ。空のオブジェクトでも何でもアタッチするだけだから。
using UnityEngine; using System.Collections; using HutongGames; public class ApplicationEventsBridge : MonoBehaviour { void OnApplicationQuit() { PlayMakerFSM.BroadcastEvent("APPLICATION QUIT"); } void OnApplicationPause() { PlayMakerFSM.BroadcastEvent("APPLICATION PAUSE"); } void OnApplicationFocus() { PlayMakerFSM.BroadcastEvent("APPLICATION FOCUS"); } }
それからはFSMのなかで次のグローバルイベントを呼べば良い。
APPLICATION QUIT
APPLICATION PAUSE
APPLICATION FOCUS
このスクリプトがやることは、単純に3つのグローバルイベントをブロードキャストするということで、それによって任意のFSMに通知することが出来る。
------
そういえばUnityでゲームをさわるようになってから、あまりOSイベントを気にしなくなってたな(爆)
EclipseでAndroid開発してたころもXCodeでiOS開発するときもOSイベントやら画面のXMLを検討するやらやってたけど、あらためてUnityやPlaymakerが便利になってもそのころの知識を大事にすべきだと認識を改めた(キリッ)
Playmakerで完成度の高いゲームを作ろうぜ!
EclipseでAndroid開発してたころもXCodeでiOS開発するときもOSイベントやら画面のXMLを検討するやらやってたけど、あらためてUnityやPlaymakerが便利になってもそのころの知識を大事にすべきだと認識を改めた(キリッ)
Playmakerで完成度の高いゲームを作ろうぜ!