【Unity】Spread Sheetから認証なしでお手軽にcsvをダウンロードする方法

UnityでSpread Sheetからお手軽にcsvをダウンロードする方法です。

Unity2018.4.6

はじめに

Unityでデータを取り扱う際、Spread Sheetなどでデータを作成して、
そこからcsvをエクスポートしてUnityに取り込むことがよくあると思います。

Spread Sheetは一覧性に優れているためこの方法は便利ではありますが、
Unityにcsvを取り込む際のワークフローが複雑だと更新が面倒です。

そこでこの記事ではSpread Sheetから簡単にcsvを取り込む方法を紹介します。

Spread Sheetを公開設定する

まずはGoogle DriveでSpread Sheetを作成します。
今回は以下のようなデータを作成しました。

f:id:halya_11:20190818005824p:plain

次にこれを外部からダウンロードできるように公開設定します。
ファイル > ウェブに公開を選択し、公開設定ダイアログを開きます。

f:id:halya_11:20190818010034p:plain

そして対象のシートを選択し、形式を「カンマ区切り形式(.csv)」に設定します。
設定後、URLをコピーしておきます。

f:id:halya_11:20190818010849p:plain

ダウンロードする

あとはUnityからダウンロードするだけです。
UnityWebRequestを使う場合には以下のようにします。

using System.Collections;
using UnityEngine;
using UnityEngine.Networking;

public class CsvDownloader : MonoBehaviour
{
    private void Start(){
        StartCoroutine(Download("前節でコピーしたURLをここに入力する"));
    }

    private IEnumerator Download(string url)
    {
        using (var request = UnityWebRequest.Get(url)) {

            yield return request.SendWebRequest();

            if (request.error != null || request.isHttpError || request.isNetworkError)
            {
                yield break;
            }

            Debug.Log(request.downloadHandler.text);
        }
    }
}

実行すると以下のようなログが表示され、正常にダウンロードできていることが確認できました。

f:id:halya_11:20190818011119p:plain