UnityNovelProj Unity で VisualNovel を作成する

https://www.youtube.com/watch?v=DW_YYBE5O24&list=PLGSox0FgA5B58Ki4t4VqAPDycEpmkBd0i&index=72

VariableStore の仕組み

変数管理システムとして VariableStore を利用します。 VariableStore は完全な static class であり、様々なクラスから変数へアクセスするための「入口」クラスです。

VariableStore は Default + []custom データベースを持ちます。 そして、各データベースには 2 種類の変数が登録できます。

  1. Internal Variable
    1. 内部変数
    2. money=50 など、データベースにそのまま登録されるだけのもの
  2. External Variable (Linked Variable)
    1. 他のクラスと内部的に紐づいて、他クラスの値を仲介するだけの変数
    2. 「今のシナリオ実行行数」などは、シナリオ管理クラスのインスタンスをもった LinkedVariable を作成すれば実現できる

Imgur

変数を管理するために Variable という抽象クラスを利用しています。 そして、InternalVariable と ExternalVariable はほぼ同じ実装であり

  • CustomGetter
  • CustomSetter

を利用することで ExternalVariable を実現しています。 CustomGetter, CustomSetter を設定しなければ、デフォルトの getter/setter つまり「ただ値を設定して取り出す」という InternalVariable になります。