CMSからのインポートの管理。必要な状態を保存する
- ビルド先のパス
- 対象言語 (配列)
- 現在使用中の
CuvClient
どのCMSを使い、どのモデルを利用するかを決定する。実装するとCuvImporter
のプルダウンに表示される。
- Cockpit CMS
- Google Sheets
- 直接参照
- Addressablesからの参照
指定するとCuvImporter
のプルダウンから除外され表示されません。
[IgnoreImporter] // <--
public sealed class TestCockpitCuvClient : CockpitCuvClient<TestCockpitModel, TestCockpitCuvModelList>
{
protected override JsonConverter<TestCockpitModel> CreateConverter()
=> new CuvModelConverter<TestCockpitModel>();
}
指定するとCuvImporter
のプルダウンに表示される名称を変更できます。
[CuvDisplayName("YourCustomName")] // <--
public sealed class TestCockpitCuvClient : CockpitCuvClient<TestCockpitModel, TestCockpitCuvModelList>
{
protected override JsonConverter<TestCockpitModel> CreateConverter()
=> new CuvModelConverter<TestCockpitModel>();
}
CuvClient
によって生成される。データを対象言語別にScriptableObject
に保存する。モデルが配列で格納されKey
で取得できる。
モデル。CMSの1記事に相当するデータ。
CuvModelList
をどのようにして参照するか決定し、CuvReference
を生成する。実装するとCuvImporter
のプルダウンに表示される。
- 直接参照
- Addressablesからの参照
言語別に格納されたCuvModelList<T>
の参照を管理するScriptableObject
。利用側は、ここから取得する。
生成したCuvReference
を直接参照して使用しても良いですが、このコンポーネントを使うと設定したKey
一覧をプルダウンで表示してくれるので便利です。
引数に参照したいCuvReference
のフィールド名を渡します。
public abstract class Test : MonoBehaviour
{
[SerializeField] GoogleSheetCuvReference _reference;
[SerializeField, CuvModelKey("_reference")] string _key;
CuvModelKey
をラップして使いやすくしたクラスです。
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;
}
}
}
CuvComponent
の非同期版です。
{}
で囲う事でパラメーターを埋め込む事ができます。
- 文言
You have earned {number} coins.
- 表示
You have earned 5 coins.
var text = model.Text.SetParam("number", 5);