gpt4 book ai didi

c# - 使用 DontDestroyOnLoad Unity C# 在场景之间保存对象

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:24 25 4
gpt4 key购买 nike

我正在制作一个 2D 游戏,我的角色可以在不同的房间进出,所以由于每个房间都是不同的场景,我需要能够以某种方式在每个场景中保持我的角色,为此目的统一报价DontDestroyOnLoad()因此,每当我切换场景时,我确实使用了该功能,但是这有一个问题。

假设我的房间只有 2 个,而且看起来很简单

enter image description here

在此方案中,主房间是您开始游戏的房间,它包含已生成的角色预制件。一旦我们去到第二个房间,我的角色就​​和他所有的好东西一起被保存了,但是如果我们回到主场景/房间,我们现在可以看到 2 个角色。为什么 ?因为当加载不同的场景时,我们的初始角色不会被破坏,而且我们还有一个与主房间/场景一起创建的角色。现在这真的很糟糕,我不知道如何解决这个问题,我在每个场景中都需要的一些脚本也有同样的问题。任何帮助表示赞赏。

最佳答案

您可以通过脚本在主场景中生成角色 - 对其进行实例化。确保为角色预制件指定特定标签(例如“玩家”)。

然后在 if 语句中实例化字符。使用 FindGameObjectWithTag(<Tag>) == null您可以查看该角色是否已经创建。

public GameObject player;

if(GameObject.FindGameObjectWithTag("Player") == null){
player = Instantiate(prefab,position,rotation) as GameObject;
}

关于c# - 使用 DontDestroyOnLoad Unity C# 在场景之间保存对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39214837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com