Unity利用Fungus与NPC对话

1.获取Fungus的方式

        食用方法

2.简介

Unity Fungus插件是一款用于创建交互式故事和游戏的工具。它允许开发者通过视觉编程方式来设计和管理场景中的对话和剧情流程。Fungus提供了一个简单直观的方式来构建游戏中的对话、选项和分支,而无需编写大量的代码。
通过Fungus,开发者可以:
  1. 创建交互式对话:可以轻松地添加角色对话和选项,并管理对话的流程。
  2. 设计剧情分支:可以根据玩家的选择或游戏中的条件,创建不同的剧情分支。
  3. 集成到Unity场景中:Fungus可以直接在Unity中进行安装和使用,无需额外的集成工作。
  4. 自定义样式和外观:可以根据需要自定义对话框的外观和风格。
总的来说,Unity Fungus插件为开发者提供了一个简单而强大的工具,用于创建引人入胜的交互式故事和游戏。

3.基本用法

        1.增加一个管理类

        2.添加内容块

        3.增加对话栏

        4.做基本的触发条件,人物碰到NPC触发以下脚本

using Fungus;
using UnityEngine;

public class NpcEntity : MonoBehaviour
{
    [Header("npc名字,需与Block名字一致")]
    public string npcName;
    private Flowchart flowchart;
    private bool canSay;


    void Start()
    {
        flowchart = GameObject.Find("Flowchart").GetComponent<Flowchart>();
    }
    private void Update()
    {
        if (Input.GetMouseButtonDown(1))
        {
            if (canSay)
            {
                if (flowchart.HasBlock(npcName))
                {
                    flowchart.ExecuteBlock(npcName);
                }
            }
        }
    }
    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            canSay = true;
        }
    }
    private void OnTriggerExit(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            canSay = false;
        }
    }
}

当我们触发条件时就可以鼠标右键启动对话了

        5. 增加条件

        

        6.增加被条件控制的NPC (if条件)

        7.给bool设置控制权限

        8.添加Menu选择菜单

        9.添加 Character

              给对话人物增加名字或者头像,音乐或者其他的

        10.给每段对话增加Character

        11.效果展示

以下是一个基本的Unity游戏NPC对话代码的示例: 首先,你需要为你的NPC创建一个脚本,例如 "NPCDialogue.cs"。在这个脚本中,你需要定义一个触发对话的方法,例如: ```csharp public void TriggerDialogue() { // 显示对话框,并开始对话 } ``` 然后,你需要创建一个对话管理器脚本,例如 "DialogueManager.cs"。这个脚本将负责管理对话框和对话内容。在这个脚本中,你需要定义一个 "StartDialogue()" 方法来开始对话,并一个 "DisplayNextSentence()" 方法用于展示下一句话。例如: ```csharp public void StartDialogue(Dialogue dialogue) { // 显示对话框,设置对话内容 } public void DisplayNextSentence() { // 显示下一句话 } ``` 将对话管理器脚本挂载到场景中的游戏对象上,然后创建一个对话游戏对象,并将其设置为不可见。在你的NPC脚本中,你需要将对话管理器和对话框对象引用设置为公共变量,例如: ```csharp public DialogueManager dialogueManager; public GameObject dialogueBox; ``` 在你的 "TriggerDialogue()" 方法中,你需要调用对话管理器的 "StartDialogue()" 方法,并传入对话内容。例如: ```csharp public void TriggerDialogue() { dialogueManager.StartDialogue(dialogue); dialogueBox.SetActive(true); } ``` 最后,你需要在对话管理器脚本中实现对话内容的展示逻辑。你可以使用Unity的UI系统来展示对话内容,例如: ```csharp public void StartDialogue(Dialogue dialogue) { // 设置对话内容 sentences.Clear(); foreach (string sentence in dialogue.sentences) { sentences.Enqueue(sentence); } // 显示第一句话 DisplayNextSentence(); } public void DisplayNextSentence() { if (sentences.Count == 0) { EndDialogue(); return; } string sentence = sentences.Dequeue(); // 展示对话框 dialogueText.text = sentence; } private void EndDialogue() { // 隐藏对话框 dialogueBox.SetActive(false); } ``` 这是一个基本的Unity游戏NPC对话代码示例。你可以根据你的游戏需求进行修改和扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抓屁放脚本里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值