Skip to content

Latest commit

 

History

History
135 lines (87 loc) · 4.18 KB

RelationshipsBetweenClasses_jp.md

File metadata and controls

135 lines (87 loc) · 4.18 KB

各クラスの役割

CMSからのインポートの管理。必要な状態を保存する

保存している内容

  • ビルド先のパス
  • 対象言語 (配列)
  • 現在使用中のCuvClient

どのCMSを使い、どのモデルを利用するかを決定する。実装するとCuvImporterのプルダウンに表示される。

CMSの種類

  • Cockpit CMS
  • Google Sheets

ファイルの参照方法

CuvClientで使えるAttribute

[IgnoreImporter]アトリビュート

指定するとCuvImporterのプルダウンから除外され表示されません。

[IgnoreImporter] // <--
public sealed class TestCockpitCuvClient : CockpitCuvClient<TestCockpitModel, TestCockpitCuvModelList>
{
    protected override JsonConverter<TestCockpitModel> CreateConverter()
        => new CuvModelConverter<TestCockpitModel>();
}

[CuvDisplayName("Name")]アトリビュート

指定すると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のプルダウンに表示される。

種類

言語別に格納されたCuvModelList<T>の参照を管理するScriptableObject。利用側は、ここから取得する。

Compornent

CuvModelKey("ref") アトリビュート

生成したCuvReferenceを直接参照して使用しても良いですが、このコンポーネントを使うと設定したKey一覧をプルダウンで表示してくれるので便利です。

引数に参照したいCuvReferenceのフィールド名を渡します。

public abstract class Test : MonoBehaviour
{
    [SerializeField] GoogleSheetCuvReference _reference;
    [SerializeField, CuvModelKey("_reference")] string _key;

CuvComponent

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;
        }
    }
}

CuvAsyncComponent

CuvComponentの非同期版です。

SetParam

{}で囲う事でパラメーターを埋め込む事ができます。

  • 文言 You have earned {number} coins.
  • 表示 You have earned 5 coins.
var text = model.Text.SetParam("number", 5);