【Unity】スプレッドシートのデータを使う方法【楽勝です】

Creating Game

こんにちは。あっきー。
21歳ニートをしながらプログラミングをやってます。

Unityでゲーム制作をしていると、敵キャラなどのデータを一つにまとめたいという衝動に駆られることがあります。
その際にスプレッドシートがとても役に立つのですが、スプレッドシートをUnityで使う方法(設定部分)は以下のページで説明しました(見てない人はまずチェックを)。

今回は、このスプレッドシートを実際に使う方法を教えていきます。

以降は先ほど紹介したページで僕が作成したスプレッドシートを利用していきます。みなさんの作ったスプレッドシートに置き換えてください。

初期設定

今回は、スプレッドシートの情報を文字表示させてみましょう。
まず、CanvasTextMeshProを設置しましょう。

今回は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のWordMeaingEngが表示最初に表示され、スペースキーを押すと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 "Our Dictionary"

人気記事英語学習用SNSをLaravelで作ってみた【システム解説あり】