「Unity LWF内のインスタンスを取得する」の版間の差分
提供: LWF Wiki
(ページの作成:「==ツリー構築が終わってから取得する== Load()を行った直後はまだLWFアニメーションのツリー構築が終わっていないため<br/> イン...」) |
|||
1行: | 1行: | ||
==ツリー構築が終わってから取得する== | ==ツリー構築が終わってから取得する== | ||
Load()を行った直後はまだLWFアニメーションのツリー構築が終わっていないため<br/> | Load()を行った直後はまだLWFアニメーションのツリー構築が終わっていないため<br/> | ||
− | + | rootに置かれているインスタンスの取得をすることができません。<br/> | |
+ | ※rootの参照は可能です。<br/> | ||
<br/> | <br/> | ||
rootにcharaというインスタンス名のムービークリップが置いてあると仮定します。<br/> | rootにcharaというインスタンス名のムービークリップが置いてあると仮定します。<br/> | ||
16行: | 17行: | ||
}); | }); | ||
こうすることでcharaインスタンスを参照して制御することができるようになります。<br/> | こうすることでcharaインスタンスを参照して制御することができるようになります。<br/> | ||
− | + | LoadCallbackの時点でrootMovieは参照可能となり、postLoadの時点でrootMovieに配置されているインスタンスを参照可能になります。<br/> | |
− | + |
2014年9月30日 (火) 21:39時点における版
ツリー構築が終わってから取得する
Load()を行った直後はまだLWFアニメーションのツリー構築が終わっていないため
rootに置かれているインスタンスの取得をすることができません。
※rootの参照は可能です。
rootにcharaというインスタンス名のムービークリップが置いてあると仮定します。
下記のように書くと取れるのですがLoad直後ではNullが返ってきます。
//Nullが帰ってくる Debug.Log(lwf.rootMovie["chara"]);
なのでLoad完了のCallbackを待った後、構築完了時に発行されるpostLoadイベントを受け取ってから参照するようにします。
Start()に下記のコードを追加します。
AddLoadCallback (delegate(LWFObject obj) { lwf.rootMovie.AddEventHandler("postLoad", delegate(LWF.Movie movie) { Debug.Log (lwf.rootMovie["chara"]); }); });
こうすることでcharaインスタンスを参照して制御することができるようになります。
LoadCallbackの時点でrootMovieは参照可能となり、postLoadの時点でrootMovieに配置されているインスタンスを参照可能になります。