UnityでFungusを使って会話イベントを作る方法⑥|メニューの使用方法・C#と変数の連携

「ゆーちゃんの脱出」Fungusを使ってメニューを表示している画像 Fungusの使い方
「ゆーちゃんの脱出」Fungusのメニューを表示している画像

ゲーム中に選択肢が出てきて、プレイヤーの選んだ内容でストーリーが変化する――
そんなイベントをFungusで作ってみたいと思ったことはありませんか?

この記事では、Fungusの「Menu」コマンドを使った選択肢イベントの作り方と、
C#スクリプトからFungusの変数を取得・設定して分岐処理する方法を紹介します!

✅第⑤回の「変数を使ってイベントを分岐させる方法」はこちら↓

選択肢メニューを使って条件分岐する

Menuコマンドで選択肢を表示

ゆーちゃん
ゆーちゃん

Fungusでは選択肢メニューを使って条件分岐ができるよ!

Unity×Fungus|Menuコマンドを追加して設定する方法を説明する画像
  1. Menu コマンドを追加
  2. Text に、表示したい選択肢のテキストを入力
  3. Target Block で、選択肢ごとにジャンプ先のブロックを指定

👇実際のゲーム画面では、こんな風に選択肢が表示されるんだよ~!

Unity×Fungus|ゲーム「ゆーちゃんの脱出」でFungusのメニューコマンドを使って、ゲーム画面に選択しを表示させた画像

Menu Dialogのカスタマイズ

選択肢ボタンの見た目を変えたいときは、

「ツール」→「Fungus」→「作成」→「Menu Dialog

をヒエラルキーに追加して、好きなスタイルに変更しよう!
ぼくのゲームゆーちゃんの脱出」では使ってないけど、他の作品で使うときの参考にしてね♪


C#スクリプトからFungusの変数を使う

Fungusの変数を取得する

C#スクリプトからFungusの変数を読んで、条件分岐に使うこともできるよ!


■ 文字列型の変数(String)

flowchart.GetStringVariable(“変数名”);

使用例:

//itemにFungusの変数”haveItem” を取得して代入
string item = flowchart.GetStringVariable(“haveItem”);


■ 整数型の変数(Integer)

flowchart.GetIntegerVariable(“変数名”);

使用例:

// timeにFungusの変数"タイム"取得して代入
int time = flowchart.GetIntegerVariable("タイム");


■ 真偽値型の変数(Boolean)

flowchart.GetBooleanVariable(“変数名”);

使用例:

//sanpoにFungusの変数”散歩”を取得して代入
bool sanpo = flowchart.GetBooleanVariable("散歩");

Unity×Fungus|ゲーム「ゆーちゃんの脱出」で散歩に行く前のシーン画像

↑Fungusの変数 ”散歩”(True/False)でストーリーを分岐する為に活用


Fungusの変数をC#から設定する

C#側からFungusの変数を変更することもできるよ!


■ 文字列型の変数を設定


flowchart.SetStringVariable(“変数名”, 変数);

使用例:

//Fungusの変数 "haveItem" を C#の変数"item" に設定する
flowchart.SetStringVariable("haveItem", item);

これで、Fungusの変数 haveItem に、C#から指定した値が渡せるようになるよ✨

Unity×Fungus|ゲーム「ゆーちゃんの脱出」で「うさぎのぬいぐるみ」を持っているシーン画像

↑現在持ってるアイテム「うさぎのぬいぐるみ」をFungusに渡して、
ストーリーを分岐させるために活用。

まとめ

今回は、Fungusの「Menu」ブロックを使って選択肢を表示する方法と、
C#スクリプトでFungusの変数を取得・設定して分岐処理する方法を紹介したよ!

  • Menuブロックを使えば、簡単に選択肢によるストーリー分岐が作れる
  • C#スクリプトからもFungusの変数を操作して、複雑な条件分岐が可能
  • プレイヤーの行動や取得アイテムによってストーリーが変わる演出が作れる!

会話イベントをより自由に、そしてインタラクティブにしたい人には、
FungusとC#の組み合わせはとても強力なツールになるよ!

👇次の記事では、Say Dialogの設定方法を紹介するよ!

コメント

タイトルとURLをコピーしました