问题标签 [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.

0 投票
0 回答
718 浏览

c# - Unity Server 不执行客户端命令

我正在开发一个非常简单/基本的客户端-服务器网络程序,这是我希望创建的未来游戏的基础。现在客户端程序/项目确实与“服务器程序/项目”成功连接(两者完全分开)。但是,当涉及到让客户端向服务器发送请求/命令时。好吧,它不会将命令发送到服务器,而是在客户端上执行。

我读到有关将“Monodevelop”继承更改为“NetworkBehaviour”的信息,所以我这样做了,它导致了以下错误;

所以我似乎已经完成了一半,据称它向服务器发送了命令,但服务器没有做任何事情。我不知道为什么。

以下是我为我的服务器和客户端准备的相对较短的程序,它们几乎相同,但如果有人能帮助我,我将不胜感激,因为我的大学课程并没有真正涉及网络编程很多;

服务器代码

客户代码

0 投票
1 回答
6860 浏览

networking - 新 Unity Networking 中的 RPC 等价物是什么?

Unity 已经升级了它的网络系统,并将旧的网络系统称为遗留网络。

那么我们如何将 RPC 调用更改为新的 Unity Networking?这种方法的等价物是什么?我们应该为它编写自己的方法吗?(发送字节数组等)

0 投票
2 回答
2766 浏览

c# - 使用 UNET NetworkBehaviour 的继承问题

在 Unity3d 5 中使用 UNET 的状态同步支持让我头疼。

根据文档http://docs.unity3d.com/Manual/UNetStateSync.html 该类应继承自 NetworkBehaviour。好吧,我正在这样做:

在哪里,Character我使用[SyncVar]自定义属性存储所有玩家数据。像这样:

但在检查员中,我收到以下错误:

The type or namespace name `SyncVar' could not be found. Are you missing a using directive or an assembly reference?

The type or namespace name `SyncVarAttribute' could not be found. Are you missing a using directive or an assembly reference?

不是 C# 的经验丰富的程序员。类从另一个继承自的类继承的NetworkBehaviour事实不支持我这样做吗?

仅供参考,添加[SyncVar]MovingEntity直接继承自NetworkBehaviour)工作得很好。

我做错了什么?在这个例子中我没有在类继承中有什么好的做法吗?

在此先感谢,并为糟糕的英语感到抱歉。

0 投票
1 回答
939 浏览

unity3d - Unity 5 和网络管理器

当我使用 Unity 3d 版本 < 5.0. 我使用: - Network.InitializeServer - MasterServer.RegisterHost - MasterServer.PollHostList - 网络视图组件。但是...当我使用 Unity 3d 版本 >= 5.0 时,我收到了消息:“网络视图(旧版)(对于新项目,您应该使用 5.1 中引入的新网络系统。此信息适用于使用旧的旧项目网络系统。)”我在 Unity 5.1.1 中使用 C# 脚本所以......每个人,请帮助我。如何在 unity 5.0 或 last 中使用该功能?感谢每一个人。

0 投票
0 回答
770 浏览

c# - Unet Unity 检查客户端何时生成并销毁 Player Prefab

仅当服务器上至少有 2 个玩家时,我才需要在玩家 GameObject 上启用脚本。如何在服务器端确定客户端在连接到服务器后生成了他/她的播放器预制件?同样,我如何知道 Prefab 何时在客户端断开连接之前被销毁,以便我可以在其他播放器上禁用我的脚本?

0 投票
2 回答
2568 浏览

unity3d - unity UNet 客户端权限

我正在制作多人游戏,并试图在客户端上实例化一个新对象。该对象应由该玩家单独控制。

我通过简单地在客户端实例化它,然后生成它来尝试它:

这会在客户端生成对象,并且可以由它控制,但不会在服务器上生成。

我也在 a 中做了同样的Command事情,然后它在任何地方都被实例化,但客户端无法控制它。但是服务器可以控制它。

这样做的正确方法是什么?创建一个应该由其中一个玩家而不是服务器控制的对象?

我试着用谷歌搜索它,但找不到任何东西。

谢谢!

0 投票
2 回答
4091 浏览

c# - 使用新的 Unity 5.1 传输层 API 流式传输 WebCamTexture

正如问题所述,我一直在尝试将 WebCamTexture 从带有网络摄像头的客户端流式传输到服务器。双方(客户端和服务器)都在 Unity 中。稍后,客户端将部署到 Android,服务器将成为桌面应用程序。

目前我正在使用以下方法获取纹理的像素:

并使用自定义序列化程序对它们进行序列化(以优化其大小)。我目前有一个未压缩的字节数组,每帧大约 3.5MB 准备发送。我知道它很大,但我想在压缩部分和实时部分开始之前传输它。

该过程的最后一部分应该是使用新的 Unity NetworkTransport 静态类发送它。距离上次使用sockets已经很久了,我真的很烂。目前我无法让它工作。

这是我的服务器端代码(为了清楚起见,省略序列化代码):

这是客户端:

我知道它会在发送之前阻止更新功能,但现在对我来说并不重要,因为我只是想传输一个帧以了解这个新系统是如何工作的,然后从那里继续。目前我在发送第一个包后收到此错误,缓冲区为 32768 字节:

我也尝试过使用1024缓冲区,显示消息只需要更长的时间(成功发送100多个包后)。

根据这个线程,它与发送过快的消息和填满队列有关,但没有一个建议的解决方案对我有用。我将不胜感激任何帮助或指导,因为 Unity 文档真的很差。

0 投票
3 回答
12174 浏览

unity3d - Unity 5.1 Networking - 为主机和所有客户端生成一个对象作为子对象

我有一个可以装备多种武器的玩家对象。装备武器时,其变换的父级设置为它的手。我已经搞砸了一段时间,无法让它对主机和客户端都有效。现在我正在尝试在服务器上装备武器,并告诉所有客户端设置他们的父母变换。

在更新中,我正在更新武器变换

我知道这不是最优化的方法。但现在我只是想让它以任何可能的方式工作,然后努力调整它。似乎这应该是一个简单的任务。

0 投票
1 回答
4979 浏览

unity3d - 如何处理错误“UNet Client Disconnect Error: Timeout”?

如何处理错误“UNet Client Disconnect Error: Timeout”?发生时如何不重新启动应用程序?

0 投票
1 回答
13207 浏览

unity3d - Unity UNET - 在播放器对象之外调用 [Command]

所以我知道 [command] 不适用于非玩家对象,但是......为什么?我应该如何同步非玩家对象的数据,例如 NPC 位置。在非玩家对象上调用 Command 的能力将在每个客户端上节省大量重复计算时间。

有没有人想出解决这个设计决定的方法?

此外,如果不在播放器对象上,SyncVars 似乎也没有被同步。

现在我最好的策略是在播放器对象上存储大量数据,并且必须继续从外部类中引用它

编辑:OOps 我的错误,正如所指出的 SyncVars 正在处理非玩家对象,仅在服务器上更新时