main BBS › フォーラム › システム・仕様系Q&A › UnitySDK の LoadData() の引数で、配列の書き方は?
-
投稿者投稿
-
鈍なくらゲスト
いつもお世話になっております。
LoadData() 関数で EmotePlayer のデータを読み替えるとき、
次の記述になるかと存じます。EmotePlayer ep= obj.GetComponent<EmotePlayer>();
ep.LoadData(PSBname);
//obj …. EmotePlayerをコンポネントしたオブジェクト。画面に出現済み
//PSBname …. Resources フォルダ内の、 PSB ファイルの名前LoadData() 関数は、EmotePlayer.cs 内で、次のように書かれています。
public void LoadData(object data) {
ArrayList list;
if (data is string) {
list = ArrayToList(new string[] { (string)data });
} else if (data is TextAsset) {
list = ArrayToList(new TextAsset[] { (TextAsset)data });
} else if (data is string[]) {
list = ArrayToList((string[])data);
} else if (data is TextAsset[]) {
list = ArrayToList((TextAsset[])data);
} else {
M2DebugLog.printf(“LoadData(): illegul type of input data.”);
return;
}
DestroyCore();
StartCore(list);
}「分割エクスポートした PSB ファイル」は、
頭部差分・胴体差分・汎用差分の ON / OFF を、この命令で切り替えられるそうです。
たしかに送り値 object data を配列に変換しているようですが、
送り値の配列の書き方がわかりません。そこでお尋ねしたいのですが、
例えば 「PSBname 」 という名のPSB ファイルの、 「胴体差分A」 を非表示にしたいとき、上記ep.LoadData( ‘ここ’ );
の ‘ここ’ はどのように書けば良いのでしょうか‥‥?
お手数をおかけして申し訳ありませんが、ご教授のほどよろしくお願いいたします。emote_ofcキーマスターE-moteオフィシャルです!
ご質問の投稿ありがとうございます。EmotePlayer#LoadData() 関数には、以下のいずれかの引数を指定することが出来ます。
・bytesデータ
・テキストアセット
・(Resourcesフォルダ内での)ファイルのパス
・それらの配列分割エクスポートしたファイルをロードする場合には、使用するファイルのデータのみを配列でまとめて指定します(オフにするデータは配列に含めない)。
例として、ファイルパスの配列で分割エクスポートしたファイル群をロードする際のサンプルコードを示します。string[] emote_file_path = {
“emote/body.bytes”,
“emote_head.bytes”,
“emote_timeline.bytes”
};
emote.LoadData(emote_file_path);以上となります。
またご不明な点がございましたら、何なりとご質問お願いいたします。引き続き、有限会社エムツー並びにE-moteをよろしくお願いいたします!
鈍なくらゲストご回答、ありがとうございます!
Unity の Resources フォルダに 頭・胴体・タイムラインの .bytes ファイルを入れて、
色々と試行錯誤してみました。
どうやらファイルパスの文字列配列に、 “.bytes” は不要みたいです。string[] emote_file_path = {
“emote/body”,
“emote_head”,
“emote_timeline”
};
emote.LoadData(emote_file_path);なら、ゲーム画面に上手く表示されました!
お蔭様で、脱衣のゲームシステムを Unity で実現できそうです。
有難うございます!emote_ofcキーマスターE-moteオフィシャルです!
解決なされたようで安心いたしました。
またご不明な点がございましたら、お気軽に投稿をお願いいたします!
-
投稿者投稿