設定がまだの方は初期設定から完了させてください。
用途に合わせて使ってください。
スプレッドシートの構成を変更できませんが、スクリプトの生成無しにすぐ使う事ができます。
- スプレッドシートのサンプルを開く
- 「ファイル > コピーを作成」でコピーしてください
- コピーしたファイルに共有設定をしてください
Project上を右クリックし「CMSuniVortex > create CuvImporter」からCuvImporter
を生成します。
ClientにCMSuniVortex.GoogleSheet.GoogleSheetCuvClient
を選択
explanation | e.g. | |
---|---|---|
Build Path | アセットを生成するパス | Assets/Generated/ |
Languages | 言語を指定、利用していなくても必ず1つ選択する必要があります。 | English |
Sheet Url | スプレッドシートのURLを指定 | https://docs.google.com/spreadsheets/d/sheetID/ |
Sheet Names | スプレッドシートの下段タブ名 | Animals, SeaCreatures |
Json Key Path | サービスアカウントを保存したパス | Assets/GoogleSheetTest/light-operator-x-x-x.json |
入力後、「Import」をクリックしてください。エラー無く出力されていれば完了です。
どうやって参照するかを指定します。今回は直接参照のGoogleSheetCuvOutput
を指定しました。
一番簡単な方法はCuvComponent
を使う事です。下記のコードをTestText.csとして保存しAssets配下に配置、Text
にアタッチして必要情報を入力してください。
using CMSuniVortex.Compornents;
using CMSuniVortex.GoogleSheet;
using UnityEngine;
using UnityEngine.UI;
public sealed class TestText : CuvComponent<GoogleSheetCuvReference>
{
[SerializeField] Text _text;
protected override void OnChangeLanguage(GoogleSheetCuvReference reference, string key)
{
if (reference.GetList().TryGetByKey(key, out var model))
{
_text.text = model.Text;
}
}
}
スプレッドシートの1番目のKey以外は自由に変更できます。スクリプトの生成が必要です。
- スプレッドシートのサンプルを開く
- 「ファイル > コピーを作成」でコピーしてください
- コピーしたファイルに共有設定をしてください
Project上を右クリックし「CMSuniVortex > create CuvImporter」からCuvImporter
を生成します。
生成したCuvImporterの「Script Generator」ボタンをクリック
必要情報を入力して生成してください。
explanation | e.g. | |
---|---|---|
Full Class Name | クラス名を指定。namespaceを指定する事も可能です。 | namespace.ClassName |
Build Path | コードを生成するディレクトリのパスを指定 | Assets/Models/ |
生成したClientを選択します。
情報を入力します。
explanation | e.g. | |
---|---|---|
Build Path | アセットを生成するパス | Assets/Generated/ |
Languages | 言語を指定、利用していなくても必ず1つ選択する必要があります。 | English |
Sheet Url | スプレッドシートのURLを指定 | https://docs.google.com/spreadsheets/d/sheetID/ |
Json Key Path | サービスアカウントを保存したパス | Assets/GoogleSheetTest/light-operator-x-x-x.json |
「Import」ボタンをクリックしてインポートします。インポート後、エラー無く出力されていれば成功です。
どうやって参照するかを指定します。今回は直接参照のCustomGoogleSheetCuvOutput
を指定しました。「Output」をクリックして出力します。
Simpleを参照してください。
シートは1番目のKey
だけは必ず設定してください。またそのキーは重複しないように注意してください。
シートの'Text'列はモデルのText = GetString("Text");
で取得できます。
public sealed class Meta : CustomGoogleSheetModel
{
public ElementType Element;
public string Text; // <--
public bool Boolean;
public int Number;
public Sprite Image;
public string Date;
public enum ElementType { Title, Narration, Character1, Character2, Character3, TextOnly }
protected override void OnDeserialize()
{
Element = GetEnum<ElementType>("Element");
Text = GetString("Text"); // <--
Boolean = GetBool("Boolean");
Number = GetInt("Number");
Date = GetDate("Date");
LoadSprite("Image", sprite => Image = sprite);
}
}
Addressable対応のCuvClient
を選択した場合、AssetReference
を使えます。
using System;
using CMSuniVortex.GoogleSheet;
using UnityEngine.AddressableAssets;
[Serializable]
public sealed class MetaAddressable : CustomGoogleSheetModel
{
public AssetReferenceSprite Sprite;
public AssetReferenceTexture2D Texture;
protected override void OnDeserialize()
{
LoadSpriteReference("Image", asset => Sprite = asset);
LoadTextureReference("Image2", asset => Texture = asset);
}
}
追加方法を説明します。まずEnglishのシートにFloatを追加してみたいと思います。
Japanese
は、翻訳が必要なところ以外はEnglish
のシートをインポートすると楽です。English
のE〜JのセルをIMPORTRANGE
関数で表示しています。
// Sheet url, Sheet name + cells
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/13XEuxW89jT4ICb2guBcgcgPrCmY_oGxDQgiWNOth7ww/", "English!E:J")
Floatを生成したモデルに追加し、デシリアライズ処理を追加します。
public sealed class Meta : CustomGoogleSheetModel
{
public ElementType Element;
public string Text;
public bool Boolean;
public int Number;
public Sprite Image;
public string Date;
public float Float; // <--
public enum ElementType { Title, Narration, Character1, Character2, Character3, TextOnly }
protected override void OnDeserialize()
{
Element = GetEnum<ElementType>("Element");
Text = GetString("Text");
Boolean = GetBool("Boolean");
Number = GetInt("Number");
Date = GetDate("Date");
Float = GetFloat("Float"); // <--
LoadSprite("Image", sprite => Image = sprite);
}
}
追加後、インポートします。
エラー無く、下記のように追加されていれば完了です。 この要領で削除したり追加したりして自分のオリジナルのシートを作ってみてください。
データ取得に、オフィシャルのライブラリを利用しています。
https://www.nuget.org/profiles/google-apis-packages
- Google.Apis
- Google.Apis.Core
- Google.Apis.Auth
- Google.Apis.Drive.v3
- Google.Apis.Sheets.v4