嗨,我想在不同场景的客户端和服务器上来回传递消息,我怎么能在Unity中做到这一点?
以下是我的情景: - 我有5个场景 -
所有这些场景都有按钮,其中包含场景名称的文字。 在基础场景中,我添加了空的游戏对象,我放置了#34; customNetworkScript"它来自" NetworkManager"脚本和放置"网络管理员HUD"在上面。以下是我放在" customNetworkScript"中的代码: -
public class customNetworkScript : NetworkManager {
public override void OnClientSceneChanged(NetworkConnection conn)
{
SceneManager.LoadScene("ClientOnline", LoadSceneMode.Single);
ClientScene.Ready(conn);
ClientScene.AddPlayer(conn, 0);
}
public override void OnServerSceneChanged(string sceneName)
{
SceneManager.LoadScene("ServerOnline", LoadSceneMode.Single);
}
}
我已经放置了#34; OfflineScene"和" OnlineScene"在字段中,命名为"离线场景"和"在线场景"在"网络管理器"零件。还在#34; Spawn Info"中放置了一个空的预制件。 in" customNetworkScript"它有组件"网络身份"在上面。现在当我运行项目时,在一个实例上,我点击"仅限LAN服务器"在另一个例子中,我点击" LAN Client"。我在两个实例上都得到了各自的场景 - > " ServerOnline"出现在我单击"仅限LAN服务器"的实例上和" ClientOnline"出现在其他实例上。 我想要的是,当我点击" ServerOnline"按钮,消息字符串将传递给" ClientOnline"当我点击" ClientOnline"按钮。
我试过" Rpc"和"命令"但是它们只有在我点击“LAN Host"而不是"仅限LAN服务器"。 我已经非常努力但却找不到任何有用的东西。如果有人向我详细解释代码,我将如何实现这一目标,将是一件非常愉快的事。
非常感谢你的时间。
答案 0 :(得分:0)
经过数小时的研究和努力,终于找到了解决我问题的方法。如果有人仍然坚持,我会参考这个资产:
此资产已有详细记录,并将告诉您有关如何进行专用/纯服务器和客户端网络的所有信息: -
如果有人仍然不明白,请随时问我。我会尽我所能。