個人用の備忘録の続き。
ここからはエクセルデータからシナリオを読み込んだり、リソースフォルダから背景画像のデータを読み込みたいので、更にアレンジしてます。参考サイト(https://original-game.com/how-to-make-a-novel-game-in-unity2d/)の記事「画像(Prefab)の削除」まで入力したぐらいのところからいじっていきます。
エクセルデータからシナリオを読み込むようにテキストを読み込むところを変えたいので、テキストデータをロードして辞書に登録するといった処理部分をコメントアウトし、代わりにエクセルデータ(エクセルデータから生成したアセット)を取り込む処理にさしかえています。エクセルデータの中身は本文表示だけ出来るか確認できればいいので、「&text テキスト一行目」といったシンプルなものを一、二行書き込んだものだけ作りました。
Excelデータから取り込むためのプラグインとしては、本などでは「Excel Importer」が紹介されていたので最初それでデータを書き出したのですが、出力したアセットの中身が空っぽのまま出力されてしまい解決できなかったので、「Excel Importer Maker」の方を使ってExcelアセットを書き出しています。書き出し方や設定の仕方はこちらのサイトを参考にしました。(【Unity】UnityでExcel データを読み込む方法「Excel Importer Maker」 | すくまりのメモ帳 (squmarigames.com))とか(エクセルデータをUnityに読み込みたい [ Unity-Excel-Importer-Maker ] – ロバメモ – 素人のUnity覚書と奮闘記 (hatenablog.com))
※参考サイトの指示どおり設定したけど、取り込んだExcelの元データを更新するとアセットがExcelの元データのフォルダに新たに出来上がるので、都度Resourceフォルダに配置してある古いExcelアセットと入れ替える必要があるのはそういうものなのか、自分の設定ミスなのか。
読み込んだ後は行ごとにリストとして読み込まれているので、使うときはそのまま引数の中身を調べてそれぞれに応じた処理をして仕分けていけばいいだけなのでシンプルに表記できます。
public class UserScriptManager : MonoBehaviour
{
// スクリプト処理
// Excel
Entity_ExcelData entity_ExcelData;
public GameObject LoadModel;
private void Awake()
{
// ExcelDataアセットをロードする。
entity_ExcelData = Resources.Load("ExcelData") as Entity_ExcelData;
}
// 現在の行を取得
public string GetCurrentCommand()
{
// 現在の行の第一引数を返す(コマンド判定用)
return entity_ExcelData.param[GManager.Instance.lineNumber].command;
}
// switch文での判定がTextだった場合に特化した処理(第二引数が本文)。
public string GetText()
{
return entity_ExcelData.param[GManager.Instance.lineNumber].parameter01;
}
「今の行のコマンドは何?」というのとか、「今の行の第一引数の内容を何々しろ」とか書きやすい。
コメント