【问题标题】:Performing simple network call to retrieve JSON in Unity? [closed]执行简单的网络调用以在 Unity 中检索 JSON? [关闭]
【发布时间】:2012-01-03 04:57:36
【问题描述】:

我查看了 Unity 的网络文档,大多数示例似乎都与多人游戏联网有关。我只是想从 api 中获取 JSON 响应以动态生成菜单。有没有一些很好的例子可以通过简单的网络调用来获得来自网络服务器的响应?

谢谢

【问题讨论】:

  • 您是否尝试从 Web API 获取此信息?如果是这样,您可能需要查看 WWW 类。
  • 这是我正在寻找的答案,但我无法将其标记为已接受,因为它是一条评论。感谢您的帮助。
  • 我将其扩展为一个答案,其中包含更多细节和一些链接,以防其他人在这里获取信息。
  • 关闭,因为您交叉发布到 gamedev(您得到答案的地方)
  • 这个问题没有什么“过于本地化”。

标签: c# unity3d unityscript


【解决方案1】:

如果您使用 C# 而不是针对 Webplayer 或 iOS,您可以使用 HttpWebRequest 和类似 Json.NET 的库(如果您有这些类实例的经验)。您可能需要花一点额外的时间正确处理异步请求。

还有 Unity 的 WWW class,您可以在其中检查和解析生成的 text 属性。 WWW 类的优点是只需要很少的代码即可异步执行请求。

请注意,如果不异步发出此类请求,您很容易在游戏循环的其余部分中阻止进度,这几乎总是不可取的。

【讨论】:

    【解决方案2】:

    要访问基于 Web 的 API,使用 Unity 中的 WWW 类是最简单的。

    http://unity3d.com/support/documentation/ScriptReference/WWW.html

    请务必查看有关异步使用它的文档,否则它可能会在等待 Web 服务器响应(或不响应)时阻止执行。

    http://unity3d.com/support/documentation/ScriptReference/index.Coroutines_26_Yield.html

    【讨论】:

      【解决方案3】:

      我会打电话给wget $urlOfApi --header=Accept:application/json -O file.json 并读入 file.json。

      【讨论】:

      • 这与统一无关,甚至与 C# 无关。
      • @tyoc213 当然可以,但这是我解决问题的方法。如果你不能使用一种以上的工具……那太糟糕了。
      • 绝对不是解决这个问题的办法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多