我在Unity中创建了2个场景。
加载屏幕的第一个场景(它连接到SocketIO服务器viia Unity SOcket.IO)
第二个场景主屏幕。
我想在第二个场景中使用相同的连接。
发布于 2019-08-16 11:47:47
请参见DontDestroyOnLoad(),使用它可以在场景切换时保留SocketIO对象。
如果您遇到更多问题,您需要提供您的代码。
public class AddMeToTheGameobjectWithSocketIOComponent : MonoBehaviour
{
void Awake()
{
DontDestroyOnLoad(this.gameObject);
}
}
发布于 2019-08-16 15:46:37
您可以使用@siusiulala提到的DontDestroyOnLoad
方法,也可以使用Singleton Pattern。与单例模式相比,使用DontDestroyOnLoad
从场景2中获取对对象的引用会稍微困难一些。
使用单例模式,您将在所有场景中拥有一个充当SocketIO包装器的对象。您可以通过执行以下操作轻松获得SocketIO参考:
Socket socket = SocketIOSingleton.Instance;
请注意,一些开发人员会避免使用Singleton模式,因为社区中的一些人不喜欢它,并将其描述为反模式,但我个人认为它在游戏中工作得非常好(特别是在Unity中制作的游戏,在这种情况下,您实际上无法访问纯依赖注入)。
https://stackoverflow.com/questions/57517595
复制相似问题