【问题标题】:Proper Way to Pass Data Objects to Unity将数据对象传递给 Unity 的正确方法
【发布时间】:2014-06-24 17:58:21
【问题描述】:

我正在尝试从 C# 程序发送我的场景类的对象以在 Unity 程序中显示它。

实现这一目标的常用方法是什么?

我想出的一个选项是 WCF:Unity 程序充当客户端,另一个 C# 程序充当服务器。在每一帧内(即在 Unity 的更新函数中),Unity 程序以请求/回复方式从其他 C# 程序请求当前场景对象。

还有更好的选择吗?有没有更通用的方式将数据对象传递给 Unity?

【问题讨论】:

    标签: c# unity3d unityscript


    【解决方案1】:

    我可能在这里陈述显而易见的事实,但您是否考虑过统一应用在某种意义上只是一个普通的 C# 应用这一事实?

    那么,如果您只有 Visual Studio 和一个空白的新项目,您通常如何将数据输入到控制台应用程序项目中?

    不过,通常情况下,这取决于您的要求,如果您是为您的第一个游戏项目构建 MMO 的众多疯狂者之一,您将需要一些超级强大且可扩展的服务器代码,并且可能需要一些自定义二进制“位”打包”序列化方法来处理服务器和客户端之间的压缩。

    但是,如果您还没有完全失去它,那么您可能正在创建类似第一人称射击游戏(为此构建了统一)或不需要持续数据流而需要低 ping 的更简单的东西......这是您的 WCF 方案所在的位置。

    Unity 确实有一些内置的网络功能,但是(这纯粹是我的观点)它真的取决于大型游戏情况,并且会发生很多事情。

    比如说...一个我的世界克隆,或者一个最多有 16 个玩家的 FPS,你可以轻松地使用内置的统一网络功能,超出你自己的领域。

    这里有一些链接可以帮助您深入挖掘......

    http://blog.ccoder.co.uk/?page=6

    http://www.paladinstudios.com/2013/07/10/how-to-create-an-online-multiplayer-game-with-unity/

    【讨论】:

    • 当我使用 WCF 时,我想出了以下选项:我的 Unity 应用程序发送一个请求,而另一个 C# 应用程序(= 主机应用程序)通过向 Unity 应用程序发送一个对象来回复。我可以想象通过使用 TCP 作为协议并启用 SessionMode 来做到这一点。但是,我正在寻找一种更有效的方式,没有这种请求/回复方式。有没有办法通过 UDP(例如)连续将数据对象从 C# 应用程序异步传递到 Unity 应用程序。然后我可能需要 Unity 应用程序中的工作线程,它永久地从 C# 应用程序接收数据对象并将它们存储在 Unity 应用程序中。
    猜你喜欢
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 2020-11-03
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    相关资源
    最近更新 更多