写一段代码挂载于玩家,使判断对话正在进行时,玩家不可移动,对话结束后,玩家可以移动,对话系统基于fungus
时间: 2024-01-11 18:03:08 浏览: 149
好的,这里是一个使用 Fungus 的示例代码,用于在对话过程中禁用玩家的移动:
```csharp
using UnityEngine;
using Fungus;
public class DialogueManager : MonoBehaviour
{
public Flowchart flowchart;
public GameObject player;
private bool isDialogueActive = false;
private void Update()
{
// 检查对话是否正在进行中
if (flowchart.HasExecutingBlocks())
{
// 禁用玩家移动
player.GetComponent<CharacterController>().enabled = false;
isDialogueActive = true;
}
else if (isDialogueActive)
{
// 启用玩家移动
player.GetComponent<CharacterController>().enabled = true;
isDialogueActive = false;
}
}
}
```
在这个例子中,我们检查 Fungus 的 Flowchart 是否正在执行代码块。如果是,我们禁用玩家的 CharacterController 组件,这将阻止玩家移动。如果对话结束,我们将重新启用 CharacterController 组件,这将允许玩家移动。
请注意,这个例子假设你已经将 Fungus 对话系统与你的游戏集成。你需要将 `flowchart` 变量引用到你的 Flowchart 组件上,并将 `player` 变量引用到你的玩家对象上。
阅读全文
相关推荐


















