关于OnLobbyServerSceneLoadedForPlayer和OnLobbyServerCreateGamePlayer在LobbyManager中没有执行的解决办法

在使用Unity的UNET网络系统时,遇到LobbyManager的子类在场景切换时,OnLobbyServerSceneLoadedForPlayer方法未按预期执行,导致无法正确生成gamePlayerPrefab。此问题可能阻碍从Lobby到Game场景的转换,影响多人游戏体验。

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

今天发现写的NetworkLobbyManager的一个子类LobbyManager在从lobby场景转换到game场景时没有生成gamePlayerPrefab,即使面板的GamePlayerPrefab槽中已经放置了预制体。原因是覆写的

public override bool OnLobbyServerSceneLoadedForPlayer(GameObject lobbyPlayer, GameObject gamePlayer)

没有执行,(该函数是每当一个客户端从lobby场景转换到game场景时该函数在服务端调用)。

在网上找到了解决办法:http://forum.unity3d.com/threads/lobbyplayer-to-gameplayer-networklobbymanager.349614/
OnLobbyServerSceneLoadedForPlayer还有 OnLobbyServerCreateGamePlayer 没有执行的原因是因为lobby预制体上面的LobbyPlayer(继承 NetworkLobbyPlayer
在加载场景时就被销毁而导致这两个函数没有执行。
需为 LobbyPlayer加上:
void Awake() {
DontDestroyOnLoad(transform.gameObject);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值