问题标签 [unet]

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 回答
87 浏览

hololens - Hololens 无法锚定为主机或客户端 - Unet

我正在使用 HoloLens 与 holotoolkit 中的 unet 示例进行共享。我真的没有问题,但更像是一个烦恼。几乎每次我去启动应用程序以测试 HoloLens 时,无论是作为主机还是作为客户端都存在问题。这导致我不得不不断地重新启动似乎可以正常工作的设备,这真的很痛苦,关闭应用程序并重新启动它似乎永远不会工作。有什么可以做的吗?

0 投票
0 回答
43 浏览

c# - 在使用 NetworkManager 的同时使用传输层

我有一个 Unity 网络项目,我正在使用非常方便的 Unity Networking High Level API(在其他组件中包含网络管理器组件和网络发现)。该项目通过 LAN 在两部 Android 手机上运行良好。

我现在需要在客户端实际加载在线场景之前将一个大字节数组(3 到 10 MB)从服务器传输到客户端。为此,我在传输层 API 上获得了这个 tuto https://www.youtube.com/watch?v=qGkkaNkq8co的灵感,但它并不像我预期的那么简单,因为我的客户端手机无法加载在线场景即使我确定主机和客户端实际上正在交换消息。我到处都放了日志,我得到的最后一条消息是

异步 DNS 结果:10.11.85.190 用于 10.11.85.190:10.11.85.190

由 NetworkClient.cs 调用

我不发布我的代码,因为这将是太多阅读和实际上而不是尝试修复一些现在看起来像这样做的坏方法,我的问题是:

你们知道同时使用传输层 API 高级 API(基本上是用于管理连接的 NetworkManger 组件)正确方法吗?

或者

你知道如何在加载在线场景之前在可靠通道上发送这个大字节数组吗?

感谢您的任何提示。

0 投票
1 回答
1141 浏览

c# - 如何使用 Unity 的 Unet 从服务器获取游戏对象的实例到客户端?

我正在使用 UNET 制作游戏并为 HoloLens 制作游戏。基本上,我的游戏非常简单,玩家加入会话,然后他们可以生成一艘船来使用 Xbox 控制器进行控制。我有移动机制,甚至有一个基本的射击功能。接下来我真正想添加的是类似于寻的导弹。我有寻的导弹的代码,它在主机上运行良好,但是,如果有意义的话,我不知道如何将我的导弹对象信息返回给玩家。我会告诉你我的意思。

我的命令:

更新方法:

它在主机上运行良好,因为它在调用命令时具有引用我只是不知道如何获取客户端的引用。

0 投票
1 回答
587 浏览

c# - UNET:正确注册动态对象

作为一个编程爱好者,我正在从事我的个人项目。我对这个项目的目标总之是让玩家建造和定制自己的船,然后加入公共服务器并与之战斗。

我得到的错误是这样的:

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

这是最相关的代码:

作为您所看到的内容的缩影:玩家调用 LoadShip() 并带有所需的生成位置、它加载的船的路径,以及他们想要覆盖的可能已经存在的船。然后它使用 XML 加载所有必要的数据,添加物理并根据船名注册预制件,在所有情况下都应该是唯一的。

主船对象和它的所有子对象(如墙、枪、控制台等)都被赋予了 NetworkIdentity 组件,主船也在 LoadShip() 中被赋予了 NetworkTransform 组件。

对于选择加载它的任何客户端,该船生成得很好,但服务器或其他客户端都无法看到它,而是收到该错误。

我一直在努力解决这个问题……也许是最近 3 个小时。这是漫长的一天,当我说我仔细搜索了 google 和 stackoverflow 以寻找已经发布的我的问题的答案时,我相信你会相信我。其中最常见的问题是:根本没有注册预制件,在服务器上注册预制件,忘记给它一个assetID,没有在客户端/有权限的东西上调用它。我很确定我已经避免了所有这些事情,请不要将我链接到 Unity 教程。我向你保证,我已经读过很多遍了。

此外,如果我只使用一个客户端托管游戏并在船上生成,则预制不会显示在网络管理器的“已注册预制”列表下,即使我已将网络管理器设置为“调试”日志级别并且它告诉我它成功注册了预制件。

这就是所有相关信息。我会提前感谢您的时间,希望我犯的任何错误都不会明显。

0 投票
1 回答
301 浏览

unity3d - 全球统一多人游戏(全球)

我使用Unity Multiplayer Services 统一开发了一个完整的 Airstrike Multiplayer 游戏。它在局域网上连接成功,我什至在互联网上检查过,它在我的城市使用匹配服务运行良好。

现在,问题是当我尝试连接两个不同国家之间的游戏时,它没有显示任何内容。

  1. 如何使用 Unity Matchmaking Services 在全球范围内运行多人游戏部分?
  2. 这里有什么需要改变的吗?(这是我的网络大堂经理):

在此处输入图像描述

0 投票
1 回答
541 浏览

python - jakeret/tf_unet U-Net 实现中使用了哪个数据集?

我正在尝试实现 U-net,我使用https://github.com/jakeret/tf_unet/tree/master/scripts这个链接作为参考。我不明白他们使用的是哪个数据集。请给我一些想法或链接我使用哪个数据集。

0 投票
1 回答
467 浏览

c# - 如何在 [Command] 函数中引用实例化对象?

我目前正在学习统一制作多人 fps,但我遇到了问题。我有一个PlayerShoot脚本可以处理不同武器和类型的射击。这是代码。

在手柄射击中,我得到装备的武器并检查它的类型,并根据类型调用射击这种类型的方法。就我而言,它正在投掷武器。在投掷武器函数中,我实例化武器预制件,然后调用CmdOnWeaponThrowed在所有客户端中生成对象。所以我的问题是我无法访问 CmdOnWeaponThrowed 函数中的 throwedObject 变量,因为命令不会将对象作为参数访问。

我得到的错误

0 投票
0 回答
388 浏览

c# - Unity UNET - 多人+单人编程方法问题

我最近开始研究一个以单人游戏模式开发的项目,持续了大约 3 个月。为了添加多人游戏功能(简单的 1v1 服务器-客户端连接),我选择了 Unet,主要遵循 Unity 教程和示例。我能够将单人游戏脚本更改为多人游戏格式,但我现在遇到的问题是它们现在只能在多人游戏中工作(默认情况下,带有网络身份组件的游戏对象被禁用)。据我所知,我有以下选择:

  1. 在线和离线模式都有不同的脚本/预制件/逻辑。这可能是最简单的解决方案,但也是最糟糕的解决方案(例如,在离线预制件/脚本上进行更改时,我也必须手动更改在线的)
  2. 由于脚本的大多数更改仅涉及将继承从 MonoBehaviour 更改为 NetworkBehaviour,因此我可以找到在运行时更改继承的方法(我认为这是不可能的)或创建 2 个版本的脚本,其中一个正确的在生成预制件时附加。
  3. 将离线/单人模式视为与在线相同的模式,只是以单人玩家为主机。不幸的是,我对网络不是很好,只使用了内置的 HLAPI 东西,比如来自 Unity 示例的网络转换/修改脚本,所以如果你有任何关于更高级网络脚本的入门级指南,我将不胜感激。

解决此类问题的最佳方法是什么?如果您有任何其他建议,请随时分享。

0 投票
1 回答
1261 浏览

unity3d - 如何分离服务器端和客户端代码

是否可以通过使用 UNet 在 Unity3D 中为客户端和服务器创建单独的项目?

据我所知,这似乎是不可能的,Unity3D 官方文档对该主题并不太清楚,并且找到了零个示例或文章。

如果使用 Unity3D 提供的NetworkManager,服务器端逻辑和游戏客户端逻辑有很多耦合,是否可以将其分成两个不同的项目?服务器端应该只是一个无头服务器,客户端应该是没有所有服务器逻辑的普通游戏客户端。如果可能,它应该是什么样子?

0 投票
0 回答
258 浏览

unity3d - unity unet 网络消息或命令/RPC

我想知道我们什么时候应该使用网络消息,什么时候我们使用 Command 或客户端 Rpc 更好?网络消息和客户端 Rpc 和命令有什么区别?