【Unity】スプレッドシートのデータを使う方法【楽勝です】
こんにちは。あっきー。
21歳ニートをしながらプログラミングをやってます。
Unityでゲーム制作をしていると、敵キャラなどのデータを一つにまとめたいという衝動に駆られることがあります。
その際にスプレッドシートがとても役に立つのですが、スプレッドシートをUnityで使う方法(設定部分)は以下のページで説明しました(見てない人はまずチェックを)。
Unityでエクセルやスプレッドシートを超簡単に読み込むには?
スプレッドシートやExcelでデータを管理してUnityに読み込ませたいとき、QuickSheetというツールがオススメです。簡単な設定ですぐにスプレッドシートをインポートできます。その使い方を解説します。
今回は、このスプレッドシートを実際に使う方法を教えていきます。
初期設定
今回は、スプレッドシートの情報を文字表示させてみましょう。
まず、Canvas
とTextMeshPro
を設置しましょう。
今回はTextMeshProを使っていますがこれはTextとは違うものです。ゲーム開発をしていくなら間違いないくお世話になっていくのでこちらを採用していきます。
スクリプトを作る
では、スクリプトを作っていきます。
まずは完成品を見せます(SheetOutPutスクリプト)。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class SheetOutput : MonoBehaviour
{
public TempMaster tempmaster;
private TextMeshProUGUI textMeshPro;
// Start is called before the first frame update
void Start()
{
textMeshPro = GetComponent();
textMeshPro.text = tempmaster.dataArray[0].Word + "\n" + tempmaster.dataArray[0].Meaningeng;
}
// Update is called once per frame
void Update()
{
if(Input.GetKeyDown(KeyCode.Space))
{
textMeshPro.text = tempmaster.dataArray[1].Word +"\n" + tempmaster.dataArray[1].Meaningeng;
}
}
}
僕の作ったスプレッドシートでは図にあるように、id
が0のWord
とMeaingEng
が表示最初に表示され、スペースキーを押すとid
が1の情報が表示されるようにプログラミングを作りました。
実際に動かしてみます。
このように、スプレッドシートの情報が文字で表示されました。
ちょっとプログラムの解説をしていきます。
プログラムの解説
public TempMaster tempmaster;
まず、TempMaster
という変数を用意します。これは、皆さんが作ったシートによって名前は異なります。
スプレッドシートのシート名が変数の型になります(詳しくは準備編で)
インスペクター上で準備編で作成したスクリプタブルオブジェクトを設定することでデータを利用することができます。
textMeshPro.text = tempmaster.dataArray[0].Word + "\n" + tempmaster.dataArray[0].Meaningeng;
ここで、スプレッドシートの情報を表示しています。
情報の取り出し方は非常にシンプルです。
tempmaster.dataArray[i]
→ dataArrayのi番目にアクセス- 要素iの中の使いたい情報を.(ドット)でつなげる
これで、OKです。
今回のtempmaster.dataArray[0].Word
は「スプレッドシートの要素0のWord」を表していて
tempmaster.dataArray[0].Meaningeng
は「スプレッドシートの要素1のMeaningEng」を表しています。
もちろんtempmaster.dataArray[1]
とすればスプレッドシートの要素1にアクセスすることができます。
簡単ですね。
スプレッドシートは使い勝手良しです
というわけで、Unityでのスプレッドシートの使い方は以上です。
スプレッドシートは今後かなりお世話になるかと思います。
ここではスプレッドシートをダウンロードして使っていますが、スプレッドシートのURLにアクセスして情報を取得できるとより流動的になるかなと思いますね。
それでは、また。よいUnityライフを。
スポンサードサーチ
人気記事英語学習用SNSをLaravelで作ってみた【システム解説あり】