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

今天发现写的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);
}

发布了12 篇原创文章 · 获赞 2 · 访问量 6071

猜你喜欢

转载自blog.csdn.net/qq_19533777/article/details/52416602