String Table Collection の同期
Google スプレッドシートに接続したい String Table Collection 毎に、String Table Collection の Extensions リスト に Google スプレッドシートの拡張機能を追加する必要があります。これを行うには、Extensions フィールド内の 追加 (+) ボタンをクリックしてください。1 つの String Table Collection に複数の拡張機能を追加することも可能で、例えばロケール毎に異なるシートを追加 (つまりシート毎に Google スプレッドシートの拡張機能を 1 つ追加) したりすることもできます。
String Table を Google スプレッドシートに同期するには、それを Sheets Service Provider アセットに接続する必要があります。この作成と設定については Sheets Service Provider を参照してください。
プロパティ | 説明 |
---|---|
Sheets Service Provider | 使用したい Sheets Service Provider アセットを割り当てます。 |
Create New Spreadsheet | このボタンを選択すると String Table データ用の新規スプレッドシートを作成できます。この String Table 用の Google スプレッドシートがまだ存在しない場合に使用してください。 |
Spreadsheet Id | Google スプレッドシートからスプレッドシート ID を入力してください。これは、スプレッドシートの Google URL 内の中頃にあります。 https://docs.google.com/spreadsheets/d/spreadsheetId/edit#gid=sheetId |
Sheet Id | Google スプレッドシートからシート ID を入力してください。これはシートの Google URL 内の最後の部分です。 https://docs.google.com/spreadsheets/d/spreadsheetId/edit#gid=sheetId |
Add Sheet | 関連付けられた Sheets Service Provider の New Sheet Properties 内で定義されたプロパティに基づいて、新規シートを作成します。 |
Select Sheet | Google スプレッドシートからシートを選択します。 |
Mapped Columns | 特定の列に特定のタイプを割り当てます。詳細は下記 Mapped Columns を参照してください。 |
Remove Missing Pulled Keys | プル後にシート内に存在しないキーを全て削除します。 |
Push Selected | 選択中のマップされた列を Google シートにプッシュします。 |
Pull Selected | 選択中のマップされた列を Google シートからプルします。 |
Push | マップされた全ての列を Google シートにプッシュします。 |
Pull | マップされた全ての列を Google シートからプルします。 |
Mapped Columns
Mapped Columns フィールドを使用して、プロジェクトがスプレッドシートに (から) データをどのようにプッシュ/プルするかを設定します。マップされた列は、1 つの列の値とメモのプロパティの読み取りと書き込みを行えます。
新しい列マッピングを追加するには、追加 (+) ボタンを選択します。
オプション | 説明 |
---|---|
Key Column | Key Column には、値フィールドにキーの名前、メモフィールドにキー ID が含まれています。つまり、キーの名前を変更することが可能です。 |
Locale Column | Locale Column には、選択されたロケール用の単一の String Table からの値が含まれています。Include Comments が有効になっている場合、コメントのメタデータがメモとしてシート内に含められます。 |
Locale Comment Column | Locale Comment Column には、コメントのメタデータが値として含まれます。 |
Add Default Columns | これはプロジェクト内の各ロケールに Key Column と Locale Column を追加します。 |
Extract Columns From Sheet | スプレッドシートに既にロケールデータが含まれている場合は、このオプションは列のタイトルを読み取り、列マッピングを作成します。 これは以下の名前を認識します。
|
Mapped Columns には、Key Column または派生した Key Column が 1 つ含まれている必要があります。Unity は、シートの行を String Table Collection 内の対応のキーに関連付けるためにこのキーを必要とします。
カスタム列
カスタムデータのプッシュとプルのサポートを追加することが可能です。
カスタム列を作成するには、抽象クラス SheetColumn から継承する必要があります。カスタム列は一般的には、例えば追加のメタデータのサポートに使用されます。この場合、抽象クラス KeyMetadataColumn および LocaleMetadataColumn を使用して処理を単純化できます。
以下の例は、カスタムメタデータを列に入力する方法を示したものです。
[Serializable]
[DisplayName("Custom Data")]
[Metadata(AllowedTypes = MetadataType.StringTableEntry)]
public class MyCustomDataMetadata : IMetadata
{
public string someValue;
public string someNoteValue;
}
/// <summary>
/// LocaleMetadataColumn is a version of SheetColumn only used for handling Metadata.
/// This can now be added to the Column Mappings for any Push or Pull request.
/// </summary>
public class MyCustomColumn : LocaleMetadataColumn<MyCustomDataMetadata>
{
public override PushFields PushFields => PushFields.ValueAndNote; // For our example we use both value and note.
public override void PullMetadata(StringTableEntry entry, MyCustomDataMetadata metadata, string cellValue, string cellNote)
{
// Metadata will be null if the entry does not already contain any.
if (metadata == null)
{
metadata = new MyCustomDataMetadata();
entry.AddMetadata(metadata);
}
metadata.someValue = cellValue;
metadata.someNoteValue = cellNote;
}
public override void PushHeader(StringTableCollection collection, out string header, out string headerNote)
{
// The title of the Google Sheet column
header = "My Custom Data";
headerNote = null;
}
public override void PushMetadata(MyCustomDataMetadata metadata, out string value, out string note)
{
// Metadata will never be null as this is only called if the entry contains a metadata entry.
value = metadata.someValue;
note = metadata.someNoteValue;
}
}
同期
Push オプションは、String Table Collection から Google スプレッドシート内の選択されたシートに全てのデータを送信します。Push Selected も同じことを行いますが選択された列と Key 列のみを送信します。
Pull オプションはマップされた列をダウンロードして String Table Collection を更新します。Pull Selected は、Pull と同様ですが選択中のマップされた列と Key 列に対してのみそれを行います。
Remove Missing Pulled Keys が有効になっている場合、プル中にスプレッドシートに含まれていない全てのキーは String Table Collection から削除されます。
スクリプティング API GoogleSheets を使用することで、カスタムコードへの Push とカスタムコードからの Pull が行えます。