unity中,如何使所有场景共用同一个fungus的flowchart,并使挂载在空物体上的代码可获得其Boolean
时间: 2024-03-05 17:52:05 浏览: 127
要使所有场景共用同一个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变量并执行相应的逻辑。
阅读全文