在游戏对话过程中,我们少不了和npc对话
这个时候,unity提供了一个免费的对话插件Fungus,首先我们需要先下载导入Fungus插件;
在这里添加一个对话事件
这是对话触发的条件 当为None时 用脚本控制对话
在这里添加对话
这里我添加了2个npc
在游戏中我们通常需要和第一个npc对话后才能和下一个npc对话
我们需要添加一个布尔值判断
在对话框那里添加一个选择
勾选data
,
在npc2中添加一个if判断 ,勾选data,当你和NPC1对话后这个bool值会变为true,
第二个npc可以提供一个选择
在场景中立方体为npc 胶囊为玩家
给npc挂脚本 chat name给你需要npc对话文本的名字
下面通过脚本控制对话事件
using Fungus;
public class Npc : MonoBehaviour
{
public string ChatName;
//当前是否可以对话
private bool canChat=false;
void Start()
{
}
// Update is called once per frame
void Update()
{
//按下E建与npc对话
if(Input.GetKeyUp(KeyCode.E))
{
Say();
}
}
private void OnMouseDown()//点击Npc对话
{
Say();
}
private void OnTriggerEnter(Collider other)
{
canChat=true;
}
private void OnTriggerExit(Collider other)
{
canChat = false;
}
void Say()
{
if(canChat)
{
//对话
Flowchart flowchart = GameObject.Find("Flowchart").GetComponent<Flowchart>();
if(flowchart.HasBlock(ChatName))
{
//执行对话
flowchart.ExecuteBlock(ChatName);
}
}
}
}
当你需要给对话添加选择时 添加这个菜单 几个选择则给几个菜单
在这里选择为你要选择的那个对话名字
如果要给对话添加头像和名字,在这里添加角色
Name Text为这个npc的名字 portraits可以给NPC对话添加一个头像(玩家同理)
在对话的语句给对应的npc名字和头像
当你想要做到与这个npc对话完一次后就不在触发 则需要想前面的定义布尔值那样做一个判断即可
好了,今天的对话系统就讲到这里,一个初级的对话就完成了