UnityNovelProj Unity で VisualNovel を作成する
https://www.youtube.com/watch?v=DW_YYBE5O24&list=PLGSox0FgA5B58Ki4t4VqAPDycEpmkBd0i&index=72
VariableStore の仕組み
変数管理システムとして VariableStore
を利用します。
VariableStore
は完全な static class であり、様々なクラスから変数へアクセスするための「入口」クラスです。
VariableStore
は Default + []custom
データベースを持ちます。
そして、各データベースには 2 種類の変数が登録できます。
- Internal Variable
- 内部変数
money=50
など、データベースにそのまま登録されるだけのもの
- External Variable (Linked Variable)
- 他のクラスと内部的に紐づいて、他クラスの値を仲介するだけの変数
- 「今のシナリオ実行行数」などは、シナリオ管理クラスのインスタンスをもった LinkedVariable を作成すれば実現できる
変数を管理するために Variable
という抽象クラスを利用しています。
そして、InternalVariable と ExternalVariable はほぼ同じ実装であり
- CustomGetter
- CustomSetter
を利用することで ExternalVariable を実現しています。 CustomGetter, CustomSetter を設定しなければ、デフォルトの getter/setter つまり「ただ値を設定して取り出す」という InternalVariable になります。