【Unity基礎5】会話終了後にメソッドを呼び出す方法〜Fungusの使い方②〜

Unity基礎

ゲームでは経験値取得の会話ログ表示後に探索画面へ戻るなど、会話終了後にメソッドを呼び出したい状況が発生することがあります。今回はそのような状況を想定し、下記「Unity基礎2」でも紹介したFungusを使って、会話ログを表示させた後にメソッドを呼び出す方法を紹介します。

【Unity基礎2】会話シーンの実装方法〜Fungusの使い方①〜
今回はUnityの無料AssetであるFungusを使った会話の実装方法について説明します。

準備

 

今回は戦闘画面で経験値取得に関する会話ログを表示させ、探索画面に戻る処理の実装を想定します。前回の「Unity基礎4」で作成したプロジェクトに手を加え、下に示すように戦闘画面で取得経験値を会話ログとして表示させるようにしました。

【Unity基礎4】複数のシーンで変数を共有する
ゲーム制作の際、キャラクターのHPや累積経験値など、複数のシーンで変数を共有する必要が出てくる場合があります。今回はそのような状況を想定し、複数のシーン間で変数を共有する方法を説明したいと思います。

会話終了後に関数を呼び出す方法

 

続いて実際に会話ログが表示された後に関数を呼び出す方法を説明していきます。

STEP1:呼び出したいメソッドを実装する

先ずは呼び出したいメソッドを実装します。今回は探索画面(ExploreScene)に移動するメソッドを呼び出すこととします。ここではGameManagerBattleSceneという名前のスクリプトを作成し、下記のような内容としました。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;//LoadSceneを用いるために導入
public class GameManagerBattleScene : MonoBehaviour
{
    //ExploreSceneへ移動するメソッド
    public void GoToExploreScene()
    {
        SceneManager.LoadScene("ExploreScene");
    }
}
8行目~11行目が会話ログ後に呼び出したいメソッドです。

STEP2:スクリプトをアタッチするオブジェクトの作成とスクリプトのアタッチ

アタッチ先のオブジェクトの作成

STEP1でスクリプトを作成したら次はそのスクリプトをアタッチするオブジェクトを作成します。

今回はBattleSceneにおいて、GameManagerという名前で空のオブジェクトを作成しました。(

下図参照)

今回は空のオブジェクトを作成しましたが、画面上にあるオブジェクトにアタッチしても問題はありません。ご自分でわかりやすいようにしていただければOKです。
スクリプトのオブジェクトへのアタッチ

オブジェクトが作成できたらSTEP1で作成したスクリプトをオブジェクトにアタッチします。(上図参照)

STEP3:Fungusからメソッドを呼び出す処理を実装する

続いてFungusで表示させる会話ログからメソッドを呼び出す処理を実装します。方法は以下に示す通りです。まずFlowchartを選択して、OpenFlowchartWindowを左クリックします。

次に、メソッドを呼び出す直前の会話ログを表示させるブロックを選択します。

続いて、インスペクターウィンドウで+ボタンを左クリックし、CommandsにCallMethodを追加します。(下図参照)

CallMethodを追加したら下図の通り、CallMethodを左クリックし、STEP2で呼び出したいメソッドを記述したスクリプトのアタッチ先オブジェクトをTargetObject部分にドラッグ&ドロップします。

そしてMethodName部分にSay(会話ログ表示)の後に呼び出したいメソッド名を記述します。(下図参照)

・呼び出したいメソッドがTargetObjectにアタッチされたスクリプトに実装されていることが必要ですので忘れないでください。(オブジェクトと呼び出したいメソッドの紐付けが必要なため)
・会話後に数秒待ってからメソッドを呼び出したい場合は、同ウィンドウのDelayを調整することで実現できます。

 

機能テスト

 

最後にPlayボタンを押してゲームを起動させ、処理が想定どおりに行われているか確認しましょう。実際に起動させてみた結果、下図のようにBattleSceneから開始して会話ログ表示後に探索画面へ戻ることが確認できました。

今回はFungusを使って、会話終了後にメソッドを呼び出す方法について説明しましたがいかがだったでしょうか。ここでは経験値取得を例に説明しましたが、例えばエネミーに遭遇した際の処理なども会話ログ→画面移動といった処理が必要になることもあると思いますので、皆様のゲームの製作でも役立つのではないかと思います。ぜひ参考にしていただければと思います。

以上。

-ゲームアプリ「HelloAnotherWorld」ダウンロードのお願い-

私が作成したゲームアプリ「HellowAnotherWorld」をダウンロードしていただけると嬉しいです。
有料ではありますが、ペットボトル飲料一本分程度の値段ですので、是非お願いします。
皆様にもメリットがあり、「このサイトで勉強すればこの程度のアプリであれば自分一人で作成できるようになる」という一つの目安にもなるかと思います。

-ゲームアプリ「HelloAnotherWorld」ダウンロードのお願い-

私が作成したゲームアプリ「HellowAnotherWorld」をダウンロードしていただけると嬉しいです。
有料ではありますが、ペットボトル飲料一本分程度の値段ですので、是非お願いします。
皆様にもメリットがあり、「このサイトで勉強すればこの程度のアプリであれば自分一人で作成できるようになる」という一つの目安にもなるかと思います。

スポンサーリンク
HelloAnotherWorld
HelloAnotherWorld
¥120
posted withアプリーチ
Unity基礎
ソフィーのUnity講座

コメント