问题标签 [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 投票
1 回答
311 浏览

c# - Unity 5 IAP + UNET 专用服务器。如何区分买家?

我正在专用服务器上实施新的 Unity IAP 系统(也使用新的 Unity 网络功能)。快速概览:客户端仅负责连接服务器、发送购买请求和接收玩家拥有的物品数量的更新。服务器端保持连接并且是 IAP 的主要枢纽,从这里向商店(Apple 和 Google,atm)发出请求,并验证购买。

问题是:我怎么知道是为哪个客户购买的?

我们有唯一的连接,但似乎无法发送连接 ID 以正确执行 ProcessPurchase 方法。“正确”是指为一个不同的买家运行的方法。当我初始化购买时,我可以提供“有效负载”作为第二个参数,看似任何输入,但在 ProcessPurchase 中我无法取回这个值。我尝试研究如何保存 transactionID,但也无济于事。

任何帮助,将不胜感激!

0 投票
1 回答
1124 浏览

unity3d - 为什么我的 Unity3d Unet 生成不起作用

我正在测试 Unet,现在在远程客户端上生成时遇到了问题。所有工作在服务器/客户端。

我有三个非玩家对象:我生成的“橙色”、“苹果”和“香蕉”。在测试时,我使用非常基本的代码来执行此操作。但是,在生成时,只有两个对象生成,第三个得到以下错误:

无法生成服务器对象,assetId=3bd88da3adcb74d04addd82122b34fee netId=6 UnityEngine.Networking.NetworkIdentity:UNetStaticUpdate()

我一直在努力寻找解决方案,但这是我得到的唯一信息。我使用以下生成代码:

0 投票
1 回答
3505 浏览

unity3d - 调用 NetworkManager.ServerChangeScene() 会破坏播放器

当使用NetworkManager.ServerChangeScene()从第 1 阶段切换到第 2 阶段时,玩家被摧毁并且在第 2 阶段加载时不存在。没有错误,并且场景确实更改成功。

什么可能导致这种情况?

这是我更改场景的代码:

0 投票
3 回答
13203 浏览

networking - NetworkServer 未激活。在 Unity 3D 中没有活动服务器时无法生成对象

我正在尝试在 Unity3d 中实现多人游戏功能。它就像一个蛇游戏,蛇吃食物并产生它的一部分。我也可以成功地生成食物和零件,但它不会移动并给我错误“NetworkServer 未激活。没有活动服务器就无法生成对象。”

这是我的代码:-

0 投票
2 回答
5523 浏览

unity3d - UNet:无法生成服务器对象(不使用 NetworkManager)

我正在玩 Unity 5 的 Networking HLAPI。我不想使用 NetworkManager,因为我不想为 Unity 的多人游戏服务(Matchmaker 和 Relay 服务器)付费。

当客户端连接到服务器时,我试图在客户端上生成一个播放器。我可以让客户端正确连接到服务器,但是客户端上的生成失败并出现以下错误:

请注意,在服务器上,玩家对象正确生成。

最小复制:

我在一个 Unity 2D 项目中,我已将以下脚本附加到我的主相机:

我的 Player 对象是一个简单的精灵,我用 NetworkIdentity 组件制作了一个预制件(请参阅 Inspector 中的我的预制件)。我的 Player Prefab 位于 Resources 文件夹中,因此我可以轻松地从代码中加载它(请参阅我的 Prefab 在项目视图中)。

我启动游戏的背景实例(使用 Ctrl+B)并将其作为服务器启动,然后单击 Unity 编辑器中的播放按钮并将该实例作为客户端启动。然后 Unity 会报告我之前提到的错误。

有谁知道我可能做错了什么?

0 投票
1 回答
727 浏览

c# - 监听端口是否已经在使用?unity网络错误

我正在尝试联网一个小型 2 人 Unity 游戏。这是我第一次接触网络,所以请随时纠正我做错的任何事情。我正在尝试制作一个简单的匹配服务,在游戏的主菜单上,玩家可以单击“查找匹配”按钮。这将执行以下函数

这是该函数中调用的相应方法。

这个想法是,当玩家点击 Find Match 时,它会刷新主机列表。如果它找到一个主机,它将加入他们的服务器并开始匹配。如果没有,它将启动自己的服务器并等待另一个玩家。测试时,第一个点击 Find Match 的玩家能够启动服务器,但随后第二个玩家收到错误消息“...监听端口是否已在使用中?”。当我调试并逐步执行我的程序时,第二个玩家的 hostList 始终为空,即使第一个玩家成功创建和注册了服务器。

0 投票
2 回答
1718 浏览

unity3d - 如何在 NetworkIdentity.AssignClientAuthority 中获取用作参数的连接

Weapon是玩家对象的子对象,子对象Weapon不能被视为玩家对象的一部分,对吧?所以,我需要使用 NetworkIdentity.AssignClientAuthority() 来赋予非玩家对象本地权限。

0 投票
1 回答
103 浏览

networking - 无法在 Unity 中放置块,使用 UNET/多人游戏

我已经制作游戏很长时间了,现在我正在设置多人游戏。问题是我尝试将对象放置在每个客户端上的任何方式都行不通。要么抛出错误,要么对象没有出现在任何地方。我的脚本在 JS 中。这里是:

在 CmdSyncBlock 中,当代码运行时出现此错误:

我做了什么:

  • 添加了 networkTransforms 和 NetworkIdentities

  • 注册的可生成预制件

如何正确地使这些对象显示在所有客户端上而不会出现错误?

0 投票
0 回答
514 浏览

unity3d - 无效的 IL 代码

我更新了 Unity,然后将我的项目从 5.2.4 更新到了 5.3.4。然后我从资产商店更新了一些资产。我解决了大部分问题。一个继续躲避我。

我不知道从哪里开始解决这个问题。在这一点上,我无法弄清楚到底出了什么问题。

任何人都可以让我指出正确的方向吗?

谢谢

0 投票
1 回答
1412 浏览

c# - 客户端和服务器上的随机数相同

我希望客户端和服务器上的随机数相同。我正在使用 Random.Range(min,max)

但问题是它在服务器和客户端上给了我不同的随机数,这弄乱了我的游戏。

我已经为变量尝试了 [SyncVar],为方法尝试了 [ServerCallBack](它只返回一个随机数)

但两者都不起作用

有人可以帮忙吗?

代码: