一个物体, 点击它会进行一段对话, 然后打开某个UI菜单, 并改变一些脚本变量. 实现这个逻辑使用Fungus好还是PlayMaker好?
时间: 2024-04-04 15:31:52 浏览: 29
这个逻辑可以使用Fungus和PlayMaker两个插件都可以实现。
使用Fungus,你可以创建一个简单的分支故事,其中包含一个对话和一个打开UI菜单的事件。在对话部分,你可以添加一个Fungus的Say Dialog来实现对话,然后在对话结束后使用Fungus的Call Menu打开UI菜单。最后,你可以使用Fungus的Set Variable来更改需要更改的脚本变量。
使用PlayMaker,你可以创建一个状态机来实现这个逻辑。在状态机中,你可以使用PlayMaker的UI Actions来打开UI菜单,使用PlayMaker的Get/Set Property来更改需要更改的脚本变量。然后,你可以在状态机中创建一个事件,当用户点击物体时,状态机会进入到对话状态,显示对话,然后返回到主状态,打开UI菜单并更改脚本变量。
总的来说,Fungus和PlayMaker都可以实现这个逻辑,但是具体使用哪个插件取决于你对这两个插件的熟悉程度和你的个人偏好。如果你已经熟悉其中一个插件,那么使用它来实现这个逻辑可能会更加容易。
相关问题
相比Fungus, PlayMaker就是多了一层状态转换的逻辑是吧? 本质来说, 他们都是一个个命令的执行.
是的,你说得对。本质上,Fungus和PlayMaker都是通过一系列命令(例如打开UI菜单、更改脚本变量等)来实现一些特定的逻辑。Fungus提供了一种更加基于分支故事的方式,而PlayMaker则提供了一种更加基于状态机的方式。
在PlayMaker中,你需要创建一个状态机来描述对象的各种状态和转换条件。当对象的状态改变时,状态机会自动地处理状态之间的转换,并执行相应的命令。因此,PlayMaker相对于Fungus来说,多了一层状态转换的逻辑。
总的来说,Fungus和PlayMaker都是通过执行一系列命令来实现特定的逻辑。它们的主要区别在于它们的组织方式和可视化工具。Fungus更加基于分支故事,而PlayMaker更加基于状态机。
unity中,如何使所有场景共用同一个fungus的flowchart,并使挂载在空物体上的代码可获得其Boolean
要使所有场景共用同一个Fungus的Flowchart,可以将Flowchart对象放在一个常驻场景中,然后在其他场景中使用DontDestroyOnLoad函数来保持该对象不被销毁。
示例代码如下:
```csharp
using UnityEngine;
using System.Collections;
using Fungus;
public class GameManager : MonoBehaviour
{
public Flowchart sharedFlowchart; // 共用的Flowchart对象
void Awake()
{
DontDestroyOnLoad(gameObject);
DontDestroyOnLoad(sharedFlowchart.gameObject);
}
}
```
在上述代码中,我们创建了一个GameManager类来管理共用的Flowchart对象,使用DontDestroyOnLoad函数来保持该对象不被销毁。
为了使挂载在空物体上的代码获得Flowchart的Boolean变量,可以使用以下代码:
```csharp
using UnityEngine;
using System.Collections;
using Fungus;
public class MyScript : MonoBehaviour
{
private Flowchart sharedFlowchart;
void Awake()
{
sharedFlowchart = GameObject.FindObjectOfType<GameManager>().sharedFlowchart;
}
void Update()
{
if (sharedFlowchart.GetBooleanVariable("myBooleanVariable"))
{
// Do something
}
}
}
```
在上述代码中,我们在Awake函数中获取共用的Flowchart对象,然后在Update函数中使用GetBooleanVariable函数来获取其Boolean变量并执行相应的逻辑。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)