【Fungus笔记】No.8:Say(说话) 的艺术

本文介绍了Unity插件Fungus的Say指令如何创建丰富的对话体验,包括使用标签注释实现文字样式效果,如加粗,并讲解了如何通过标签控制文本的动态效果,如晃动和停顿,以及与场景交互的方式,如在停顿时执行其他指令。同时提到了audio标签的使用注意事项,要求音频需在场景中激活。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Say指令 可以做的不仅仅是简单地在对话框里显示一段话,它还可以让这段话显示得更加“丰富”。

打开Say指令中的 Tag Help ,可以看到非常多的标签注释,这些标签注释就可以为话语增加特色。

(标签的英文解释还是容易看懂的)

{}  {/} 共同作用于其中间的语句,如 {b}  {/b} 表示将中间的语句字体加粗

{} 作用于其后面的语句;

() 中表示传递给 {} 的参数的名称,如 {punch=10,0.5} 表示 后面语句的晃动强

<think>好的,用户想在Unity中使用Fungus插件的SaveSelection方法或功能。我需要先确认Fungus是否确实有这个功能,或者用户可能记错了名称。首先,我应该回顾Fungus的文档,看看是否有SaveSelection相关的命令或方法。Fungus的常用命令包括保存变量、菜单选择等,但SaveSelection可能不是标准命令。 接下来,考虑到用户可能希望保存玩家的选择,比如在对话树中的选项,以便后续流程中使用。Fungus通常使用变量来存储数据,所以可能的方法是使用Set Variable命令来记录选择的值。例如,当玩家做出选择后,将选项的索引或内容保存到一个变量中,之后在流程中调用这个变量。 另外,用户可能希望实现类似保存游戏进度的功能,这时需要结合Fungus的SaveManager组件。SaveManager可以保存游戏的状态,包括变量和当前的流程位置。需要指导用户如何设置SaveManager,如何触发保存和加载操作。 还有可能用户提到的SaveSelection是指保存当前选择的流程分支,这可能需要通过自定义脚本或扩展Fungus的功能来实现。如果标准功能无法满足,可能需要编写一些Lua脚本或者C#代码来增强功能,比如访问Flowchart的变量和状态,并手动保存到PlayerPrefs或文件中。 需要检查Fungus的API文档,查看Flowchart类是否有相关的方法可以获取当前的选择状态,或者是否有事件可以在选择时触发保存操作。如果有,可以指导用户使用这些API;如果没有,可能需要提供替代方案,比如使用变量跟踪选择。 最后,确保回答步骤清晰,给出具体的操作示例,比如如何创建变量,如何在选项命令中设置变量,以及如何使用SaveManager。同时提醒用户注意测试保存和加载功能,确保数据正确性。</think>在Unity中使用Fungus插件实现选择保存功能,可以通过以下步骤操作: ### 一、基础设置 1. 创建**Flowchart**对象 - 在Hierarchy面板右键 > Fungus > Create Flowchart - 添加`SaveManager`组件:Inspector窗口 > Add Component > Fungus > Save Manager 2. 设置全局变量 ```lua -- 在Flowchart Variables面板创建变量 variable int selectedChoice = 0 variable bool isChoiceSaved = false ``` ### 二、选择保存实现 ```python # 在对话选项命令中设置变量值 Say -> Menu: Option "选择A": Set Variable: selectedChoice = 1 Set Variable: isChoiceSaved = true Option "选择B": Set Variable: selectedChoice = 2 Set Variable: isChoiceSaved = true ``` ### 三、保存/加载系统 1. 添加保存按钮: ```lua // 创建UI Button并绑定事件 EventTrigger.AddListener(ExecuteSave); ``` 2. 实现保存逻辑: ```csharp public void ExecuteSave(){ SaveManager.SaveGame(); PlayerPrefs.SetInt("LastChoice", flowchart.GetIntegerVariable("selectedChoice")); } ``` 3. 加载时检测: ```csharp void Start(){ if(SaveManager.SaveExists()){ int lastChoice = PlayerPrefs.GetInt("LastChoice"); flowchart.SetIntegerVariable("selectedChoice", lastChoice); flowchart.ExecuteBlock("LoadGameBlock"); } } ``` ### 四、高级应用 1. 多存档支持: ```csharp SaveManager.SaveSlotProfile("Slot1"); SaveManager.LoadSlotProfile("Slot1"); ``` 2. 数据加密(AES加密示例): ```csharp string encryptedData = AESHelper.Encrypt(saveData); File.WriteAllText(savePath, encryptedData); ``` [^1]: Fungus的保存系统采用JSON序列化方案,可扩展支持自定义数据类型和加密需求
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值