Naninovelで条件分岐する方法についてです。
@if~@endifで条件分岐
Naninovelの基本的な使い方についてはこちら。
カスタム変数の作り方などはこちら。
@if~@endif

基本的な形として、inputで数値を入力してもらい、その値によって処理を分岐してみます。
@if 変数=値または@if 変数==値の式で、変数と値が一致する時にのみ、@endifまでの処理が実行されます。
Naninovelでは=はひとつでもif文が動作します。
@if 変数=値または@if 変数==値の式で、変数と値が一致する時にのみ、@endifまでの処理が実行されます。
Naninovelでは=はひとつでもif文が動作します。

値として1を入力すると、@ifと@endifの間の処理が実行されることが確認できます。

2を入力すると、

@if~@endifの処理は無視されます。
演算子

=以外のの使える演算子は概ねunity C#と同じです。<でより小さい、>でより大きい。

<=で以下、>=で以上。

!=で一致しない、となります。

boolean値(TrueかFalseしかないデータ型)のTrueを指定するなら、@if 変数名とするだけで@if 変数名 =Trueと同じ意味になります。
また、!変数名で変数名=Falseと同じ意味になります。
また、!変数名で変数名=Falseと同じ意味になります。

&&で式をつなぐとAかつBの条件を満たした時にTrueとなり、

||で式をつなぐとAまたはBの条件を満たした時にTrueとなります。
@elseif

@ifと@endifの間に@elseif 条件を置くと、上のifが達成できなかった場合に再度別の条件で判定し、別の結果を返す(複数分岐する)ことができます。

入力した値が2であれば、ちゃんと別の結果が返ります。

こういった式の場合「1」を入力するとif、elseifどちらもtrueですが、上にあるifまたはelseifが条件を達成した場合、それ以降のelseif/elseは判定されません。
@else

@endifの前に@elseを置くことで、if、elseifがどれも条件を満たさない場合に実行する処理を指定できます。
パラメータと指定することで条件分岐

別のif文の使い方として、スクリプト if:条件とすることで、条件を満たした場合のみスクリプトを実行させることができます。

@choiceや@printと組み合わせることで、変数の値により展開を誘導することができます。

やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。
コメント