【问题标题】:Load some variables from PHP Script using JavaScript and/or C# (Unity3D)使用 JavaScript 和/或 C# (Unity3D) 从 PHP 脚本加载一些变量
【发布时间】:2017-02-16 21:45:18
【问题描述】:

我在 Unity 游戏引擎中有困难的项目,我需要创建从服务器上的 PHP 文件加载变量的脚本。我的 PHP 脚本是:

<?php
 $MasterServer = "SomeIP1";
 $MasterServer2 = "SomeIP2";
 $MasterServer3 = "SomeIP3";

 echo "1 Server = ".$MasterServer;
 echo "2 Server = ".$MasterServer2;
 echo "3 Server = ".$MasterServer3;
?>

结果如下:

 1 Server = SomeIP1
 2 Server = SomeIP2
 3 Server = SomeIP3

如何在 C# 和/或 JS (Unity3D) 中读取这些(作为变量)?

【问题讨论】:

  • responseFromServer.Split('\n').Select(v =&gt; new KeyValuePair&lt;string, string&gt;(v.Split('=')[0], v.Spit('=')[1])); 将产生{ "1 Server ", " SomeIP1" }, { "2 Server ", " SomeIP2" }...

标签: javascript c# php unity3d


【解决方案1】:

不要那样做。这是您问题的适当答案。使用 xml 或 json 来保存数据。

在 php 方面,将所有这些数据构造成一个 json 字符串。在 C# 端,使用 WWW 类接收它,然后将 deserialize json 转换为对象。然后您可以从中访问 1 Server、2 Server 和 3 Server 数据。

PHP

发送到 Unity:

{"server1":"SomeIP1","server2":"SomeIP2","server3":"SomeIP3"}

您必须将 SomeIP1、SomeIP2 和 SomeIP3 替换为 IP。

C#

[Serializable]
public class ServerInfo
{
    public string server1;
    public string server2;
    public string server3;
}

....

IEnumerator downLoadFromServer()
{
    WWW www = new WWW("yourUrl");
    yield return www;
    string json = www.text;

    ServerInfo serverInfo = JsonUtility.FromJson<ServerInfo>(json);
    Debug.Log("server1: " + serverInfo.server1);
    Debug.Log("server2: " + serverInfo.server2);
    Debug.Log("server3: " + serverInfo.server3);
}

我建议你花时间学习一下 json 的工作原理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多