UnityでFungusを使って会話イベントを作る方法②|C#スクリプト連携&クリックイベント

ゲーム「ゆーちゃんの脱出」にFungusの会話機能を使ってSay Daialogにテキストを表示している画像 Fungusの使い方
Fungusを使ったテキストの表示画像

Unityで会話イベントを作るなら、**ノーコードで扱えるFungus(ファンガス)**はとっても便利。

でも、もっと細かい条件分岐スクリプトとの連携処理も入れたい…そんなときは、FungusとC#スクリプトを組み合わせて使うのがおすすめです!

今回は、FungusからC#スクリプトのメソッドを呼び出す方法や、逆にC#側からFungusのブロックを実行する方法を実例つきで解説。

UIやオブジェクトをクリックして、Fungusのイベントを起動させる方法も紹介しています。

ゆーちゃん
ゆーちゃん

Unityでのイベント制御をもっと自由にしたい人は、ぜひチェックしてみてね!

※この記事はシリーズ第②回目です。
✅第①回の「Fungusの基本操作と主なコマンドブロック一覧」はこちら👇

FungusからC#スクリプトのメソッドを呼び出す

Fungusの「Call Method」ブロックを使えば、Unity側のC#スクリプトの関数を実行できるよ。

オブジェクトを表示させたいときや、背景を変えたい時など、C#のメゾットを呼び出したい時に使うんだ。

✅手順:

  1. Call Methodブロックを追加
  2. ターゲットオブジェクト(スクリプトがアタッチされているGameObject)を指定
  3. 呼び出すメソッド名を入力
     ※正しいメソッド名を ” “(ダブルクオーテーション)なし で入力!
  4. 時間を空けて実行する場合は「遅延」欄を入力。
Unity×Fungus|Call Methodブロックの設定を説明する画像

呼び出すC#のメソッドは public にしておく必要があるよ。

C#スクリプトからFungusブロックを呼び出す

会話イベントをスタートさせたい時など、C#スクリプト側からFungusのブロックを実行するには、以下のように記述:

Fungus.Flowchart.BroadcastFungusMessage("メッセージ名");

  • "メッセージ名" は、Fungus側で設定したメッセージと一致させる。
  • ダブルクオーテーションを忘れずに!

Fungusでメッセージを受け取る設定

  1. ブロックのインスペクターで、Execute On Event を「Message Received」に変更
  2. Message Text に、C#側から送る "メッセージ名" を設定
Unity×Fungus|Fungusでメッセージを受け取る設定を説明する画像

これで、スクリプトからメッセージを送ると、指定のFungusブロックが自動で実行されるよ!


オブジェクトをクリックしたらFungusでイベント発生!

UIオブジェクトや画像をクリックしたときにFungusでテキストを表示することもできるんだ!

✅Fungusで「Object Clicked」イベントを使う手順

  1. 対象のUIオブジェクトに、Clickable2D コンポーネントを追加
  2. インスペクターのUse Event System にチェックを入れる
Unity×Fungus|Clickable2Dコンポーネントでオブジェクトクリックイベントを設定する方法を説明する画像

4. Fungusで新しいブロックを作成
5. インスペクターで、
Execute On Event →「Object Clicked
Clickable Object に対象のオブジェクトをアタッチ
Clickable2Dが入っていないと設定できないので注意!)

Unity×Fungus|Fungusブロックでオブジェクトクリック時のテキストを表示させる設定方法を説明する画像

6. Commandsに、クリック時の処理(会話表示など)を追加

✅これで、オブジェクトをクリックしたときに、Fungusのブロックが反応してイベントが実行されるようになるよ!

Unity×Fungus|ゲーム「ゆーちゃんの脱出」オブジェクトクリックで表示されたテキストの画像
ゆーちゃん
ゆーちゃん

クリックでテキストを表示させるのには、Fungusを使うと便利🌟


実際に、ぼくが作ったゲーム「ゆーちゃんの脱出」でも、
条件分岐やブロックの呼び出しがたくさんあったから、
Flowchart Windowがすごいことに…!

Unity×Fungus|ゲーム「ゆーちゃんの脱出」で使用したFungusのブロック一覧画像

🧠 ブロックが増えすぎると管理が大変だから、
Call MethodやC#スクリプトとの連携を活用すると整理しやすくなるよ!

まとめ

今回は、FungusとC#スクリプトを連携して、ゲームを進行させたり、クリックイベントを実行する方法を紹介したよ!

ぼくのゲームでも、キャラにタッチしたときに会話をスタートさせたり、持ってるアイテムでスト-リーを分岐したり、いろんなところで使ってるよ~。

慣れればそんなに難しくないから、ぜひ試してみてね!

👇次の記事では、キャラクターの表示方法、ステージの活用法などを詳しく解説してるよ!

コメント

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