LoginSignup
0
0

[Unity]3Dホラーゲーム制作の為に作成した機能(2) Fungusで会話シーンを作る

Last updated at Posted at 2023-12-01

この記事は3Dホラーゲームを作る際、どのように機能を実装したのかをザックリまとめたものです。

出来るもの

スクリーンショット 2023-12-01 104137.png

目次

準備
スクリプト追加
Flowchart作成
完成

準備

Fungusをインポート
※現在FungusはUnityAssetStoreからDL出来ない為、GitHubからDLします

スクリプト追加

前回 作成したSelectRayOutlineの派生先として「ClickStartTalk」スクリプトを作ってオブジェクトに追加する。

これによりアウトライン表示中(HitNow()内)にてStartTalk()の処理が走るので、クリックすると会話シーンを発生させる処理が追加される。

ClickStartTalk.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// Select中に左クリックするとチャットが出るスクリプト
/// </summary>
public class ClickStartTalk : SelectRayOutline.cs
{
    [SerializeField]
    private Fungus.Flowchart flowchart = null;
    [SerializeField]
    private string strMessage = null;

    private bool isTalkNow = false;

    public override void HitNow()
    {
        if(Input.GetMouseButtonDown(0) && !isTalkNow)
        {
            StartTalk();
        }
    }

    private void StartTalk()
    {
        // 準備
        isTalkNow = true;   // 会話中、再度会話を開始させない

        // 会話開始
        flowchart.SendFungusMessage(strMessage);
    }

    public void FinishTalk()
    {
        isTalkNow = false;  // 再度会話可能
    }
}

Flowchart作成

[Tools]→[Fungus]→[Create]→[Flowchart]でFlowchartを作成
スクリーンショット 2023-12-01 081518.png

1.作ったFlowchartから「Open FlowChart Window」をクリック
スクリーンショット 2023-12-01 101450.png

2.Execute On Event →「Message Received」に変更
3.Message → 任意の名称(今回私はClipboardとしました)
4.右下の+ボタンを押して「Narrative/say」を追加
スクリーンショット 2023-12-01 102057.png

5.Story Textに会話文を入力
スクリーンショット 2023-12-01 102837.png

6.右下の+ボタンを押して「Scripting/Invoke Method」を追加
7.TargetObjectに「ClickStartTalkスクリプトを追加したオブジェクト」を指定
8.TargetComponentに「ClickStartTalk」を指定
9.Target Methodに「FinishTalk()」を指定
スクリーンショット 2023-12-01 104136.png

Hierarchyウィンドウに戻ってClickStartTalkスクリプトを見る
10.先ほど追加したFlowchartオブジェクトをClickStartTalkのFlowChartに指定
11.3で書いたMessageの「任意の名称」をStr Messageに書く
スクリーンショット 2023-12-01 103105.png

完成

Talk.gif

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0