问题标签 [unity-networking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Unity Networking-UNet 中的附加场景加载
简短描述:我正在我的 Main Scene 中加载 Additive Scene,它的加载很好,但 Additive 场景的 GameObject(包含Network Identity组件)正在变为 disable。
详细信息: 我正在通过此代码加载附加场景,以便将附加场景加载到我的服务器和所有工作正常的客户端中:
尽管它已将我的场景加载到客户端/服务器中,但具有网络身份的对象已禁用(这是默认行为,因为我检查了 Unity UNetSceneObjects,其中指出:
加载场景时,场景中所有带有 NetworkIdentity 组件的对象都将被禁用;在客户端和服务器上。然后,当场景完全加载时,调用 NetworkServer.SpawnObjects() 来激活这些联网的场景对象。这将在服务器场景完成加载时由 NetworkManager 自动完成- 或者可以由用户代码直接调用。
正如文档所述,它将自动激活网络身份对象,但在我的上下文中并没有发生。我的场景加载很好,但它的网络身份对象不活跃。
我做错了什么?
我还尝试通过在新加载的场景中调用 NetworkServer.SpawnObjects()来激活我自己的对象,但它只在服务器端生成对象,同时在客户端显示错误
未找到 1 的生成场景对象 未找到 2 的生成场景对象 未找到 3 的生成场景对象...... . .
任何 Unet Champion 可以帮助我吗?
编辑/更新方法:
我已经根据关于附加场景加载的统一论坛讨论更改了我的代码,它在服务器上加载我的附加场景时出现错误(如下所示),并且我的客户端的场景网络身份对象仍然被禁用:
错误:
使用无效的连接对象调用 Ready():conn=null
另一个代码尝试:
c# - 当本地播放器不是主机时,命令不执行
我的行为很奇怪,如果我的播放器实例化为主机(服务器 + 播放器),那么我的命令函数运行完美并且某些对象变为实例化,但是如果我加入主机,那么我的命令不会在我的本地播放器上执行,而是在所有播放器上运行其他客户。
c# - 主/主机通信c#
我有一个主服务器,其目的是在游戏队列中登录和发送玩家,并在必要时实例化/关闭主机(大厅)。
目前客户端(玩家和主机)正在使用 NerworkClient 类连接到主服务器的 NetworkServer。他们与统一的 NetworkMessage/RegisterHandler 等进行通信......
玩家只发送凭据和“我想玩”消息。主持人可以发送他们的状态、大厅状态和游戏结束得分数据。
我想知道是否可以使用 httplistener 和 webrequests 并且更好(master 和 hosts 都可以在同一台机器上)。
你知道在性能方面是否有更好的方法来实现不同统一构建之间的这种通信?
node.js - 带有 Node.js 服务器的 Unity3D websocket 客户端?
我有一个用 Node.js 制作的游戏服务器,并且正在为它构建一个 Unity3D 客户端。我已经为同一台服务器构建了一个纯 Javascript Web 客户端,效果很好。
我能够使用 websocket-sharp 为 Unity3D 构建客户端,但它有点慢,并且想知道是否有更好的库可以使用,例如 UNET。
unity3d - Unity5 - 为多人游戏制作服务器
我遵循了在线多人游戏的 Unity 教程(此处),架构如下:
但我想拥有这样的架构:
我想真正将在线游戏中的客户端部分和服务器部分分开。我是 Unity 新手,尤其是在线多人游戏,我真的不知道该怎么做。我不想要解决方案,但也许知道如何做到这一点。
非常感谢你帮助我。
unity3d - 根据多人网络 Unity 中的标签随机化玩家
如何根据多人游戏中的标签随机化玩家(使用 UNITY Networking Lobby Asset)?例如,我生成了带有“Flee”标签的玩家,然后我想随机确定其中谁将成为“Chaser”。所以如果有 5 名玩家,其中 4 人应该有“Flee”标签,另一个应该是“chaser”。我一直在尝试这样做,但是每个客户都会发生这种情况,他们会随机化数字,因此有时客户 A 在他的视图中会被标记为“追逐者”,而在其他视图中,他会被标记为“逃跑”。所以基本上发生的事情是它在每个客户端中随机化,但我想要的是在服务器中随机化只是为了确定“Chaser”标签。帮助将不胜感激。谢谢!
c# - networkserver connectionId 是否像一个统一的列表?
嗨,我一直在思考这个问题,但似乎无法得到答案。
我的问题是。networkServer connectionId 是否像统一 c# 中的列表?
我是这样想的。假设我们有两个玩家连接到服务器。
如果假设 player_1 断开连接会发生什么。这会让 player_2 下移到第一行并获得 player_1 的 connectionId 吗?
还是他会留在同一个connectionId?如果是这样,如果第三个玩家连接会发生什么?他会排在队伍前面并使用 player_1 的旧 connectionId 吗?
或者他会被排在队伍的后面吗?并获得一个新的connectionId