问题标签 [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 5 IAP + UNET 专用服务器。如何区分买家?
我正在专用服务器上实施新的 Unity IAP 系统(也使用新的 Unity 网络功能)。快速概览:客户端仅负责连接服务器、发送购买请求和接收玩家拥有的物品数量的更新。服务器端保持连接并且是 IAP 的主要枢纽,从这里向商店(Apple 和 Google,atm)发出请求,并验证购买。
问题是:我怎么知道是为哪个客户购买的?
我们有唯一的连接,但似乎无法发送连接 ID 以正确执行 ProcessPurchase 方法。“正确”是指为一个不同的买家运行的方法。当我初始化购买时,我可以提供“有效负载”作为第二个参数,看似任何输入,但在 ProcessPurchase 中我无法取回这个值。我尝试研究如何保存 transactionID,但也无济于事。
任何帮助,将不胜感激!
unity3d - 为什么我的 Unity3d Unet 生成不起作用
我正在测试 Unet,现在在远程客户端上生成时遇到了问题。所有工作在服务器/客户端。
我有三个非玩家对象:我生成的“橙色”、“苹果”和“香蕉”。在测试时,我使用非常基本的代码来执行此操作。但是,在生成时,只有两个对象生成,第三个得到以下错误:
无法生成服务器对象,assetId=3bd88da3adcb74d04addd82122b34fee netId=6 UnityEngine.Networking.NetworkIdentity:UNetStaticUpdate()
我一直在努力寻找解决方案,但这是我得到的唯一信息。我使用以下生成代码:
unity3d - 调用 NetworkManager.ServerChangeScene() 会破坏播放器
当使用NetworkManager.ServerChangeScene()
从第 1 阶段切换到第 2 阶段时,玩家被摧毁并且在第 2 阶段加载时不存在。没有错误,并且场景确实更改成功。
什么可能导致这种情况?
这是我更改场景的代码:
networking - NetworkServer 未激活。在 Unity 3D 中没有活动服务器时无法生成对象
我正在尝试在 Unity3d 中实现多人游戏功能。它就像一个蛇游戏,蛇吃食物并产生它的一部分。我也可以成功地生成食物和零件,但它不会移动并给我错误“NetworkServer 未激活。没有活动服务器就无法生成对象。”
这是我的代码:-
unity3d - UNet:无法生成服务器对象(不使用 NetworkManager)
我正在玩 Unity 5 的 Networking HLAPI。我不想使用 NetworkManager,因为我不想为 Unity 的多人游戏服务(Matchmaker 和 Relay 服务器)付费。
当客户端连接到服务器时,我试图在客户端上生成一个播放器。我可以让客户端正确连接到服务器,但是客户端上的生成失败并出现以下错误:
请注意,在服务器上,玩家对象正确生成。
最小复制:
我在一个 Unity 2D 项目中,我已将以下脚本附加到我的主相机:
我的 Player 对象是一个简单的精灵,我用 NetworkIdentity 组件制作了一个预制件(请参阅 Inspector 中的我的预制件)。我的 Player Prefab 位于 Resources 文件夹中,因此我可以轻松地从代码中加载它(请参阅我的 Prefab 在项目视图中)。
我启动游戏的背景实例(使用 Ctrl+B)并将其作为服务器启动,然后单击 Unity 编辑器中的播放按钮并将该实例作为客户端启动。然后 Unity 会报告我之前提到的错误。
有谁知道我可能做错了什么?
c# - 监听端口是否已经在使用?unity网络错误
我正在尝试联网一个小型 2 人 Unity 游戏。这是我第一次接触网络,所以请随时纠正我做错的任何事情。我正在尝试制作一个简单的匹配服务,在游戏的主菜单上,玩家可以单击“查找匹配”按钮。这将执行以下函数
这是该函数中调用的相应方法。
这个想法是,当玩家点击 Find Match 时,它会刷新主机列表。如果它找到一个主机,它将加入他们的服务器并开始匹配。如果没有,它将启动自己的服务器并等待另一个玩家。测试时,第一个点击 Find Match 的玩家能够启动服务器,但随后第二个玩家收到错误消息“...监听端口是否已在使用中?”。当我调试并逐步执行我的程序时,第二个玩家的 hostList 始终为空,即使第一个玩家成功创建和注册了服务器。
unity3d - 如何在 NetworkIdentity.AssignClientAuthority 中获取用作参数的连接
Weapon是玩家对象的子对象,子对象Weapon不能被视为玩家对象的一部分,对吧?所以,我需要使用 NetworkIdentity.AssignClientAuthority() 来赋予非玩家对象本地权限。
networking - 无法在 Unity 中放置块,使用 UNET/多人游戏
我已经制作游戏很长时间了,现在我正在设置多人游戏。问题是我尝试将对象放置在每个客户端上的任何方式都行不通。要么抛出错误,要么对象没有出现在任何地方。我的脚本在 JS 中。这里是:
在 CmdSyncBlock 中,当代码运行时出现此错误:
我做了什么:
添加了 networkTransforms 和 NetworkIdentities
注册的可生成预制件
如何正确地使这些对象显示在所有客户端上而不会出现错误?
unity3d - 无效的 IL 代码
我更新了 Unity,然后将我的项目从 5.2.4 更新到了 5.3.4。然后我从资产商店更新了一些资产。我解决了大部分问题。一个继续躲避我。
我不知道从哪里开始解决这个问题。在这一点上,我无法弄清楚到底出了什么问题。
任何人都可以让我指出正确的方向吗?
谢谢
c# - 客户端和服务器上的随机数相同
我希望客户端和服务器上的随机数相同。我正在使用 Random.Range(min,max)
但问题是它在服务器和客户端上给了我不同的随机数,这弄乱了我的游戏。
我已经为变量尝试了 [SyncVar],为方法尝试了 [ServerCallBack](它只返回一个随机数)
但两者都不起作用
有人可以帮忙吗?
代码: