モノクロタイム

I'm from the future!

【Unity】全てのオブジェクトを読み込んだ後にメニューボタンのタッチイベントを有効にする

文字だけで見たらカオスだな・・

 

今回私が作っていたのは

・ScrollViewでタッチスクロール式のメニューが右端にある

・広告画像、それに関係するTwitterのつぶやきなどをサーバーから取得している

 

この時、

・広告画像を初めとする全てのサーバーから読み込むデータを取得し終えた後に、GUI操作が有効になる

 

という機能を実装しました。

今回も力技なのであんま期待できないですね、はい。

 

タッチスクロール部分と制御部分は分けています

 

【enable.js】

static var rtn : int;

 

function Start () {

  /*サーバーから情報を読み込む処理*/

  Resources.UnloadUnusedAssets();

  rtn = 1;

}

return (rtn);

 

 

【GUITouchScroll.js】

function OnGUI() {

  if(enable.rtn == 1) {

    GUI.enabled = true;

  }else{

    GUI.enabled = false;

  }

  /*以降タッチスクロール部分*/

}

 

制御側のスクリプトであるenable.jsのStart()の前に予め何処からでも呼べる変数rtnを用意しておき、Start()が全て終了した時にrtnに値が入り、外でrtnを返してます。

昼下がりの眠気と戦う脳ではこんなクソみたいなコードしか書けませんでした。

まあでも一番簡単な気がします…。

OnGUIはフレーム毎に処理を読み込みますので、サーバーから情報を受け取る前にif文を通ったことで、以降GUIが操作可能にならないということはないです

Resources.UnloadUnusedAssets()

の部分は、利用していないリソースデータをアンロードしメモリ領域を開放する処理です。あってもなくても構いません。

 

まあ、こういう書き方もあるよってことで。