从统一存储在服务器上的 xml 创建对象

create object from a xml stored on a server in unity

我看过一些关于将数据从 xml 存储到 unity 中的教程。但我不能用手指绕着它。我想在运行时创建一个多维数据集,其信息存储在我服务器上的 xml 文件中。 xml 布局如下所示:

<Cubes>
    <Cube nameCube="CubeNumber1">
    <Cube colorCube="139,69,19,1">
    </Cube>
</Cubes>

下面是我目前使用的代码,没有从服务器调用 xml(使用 WWW 函数)并将其链接到此脚本。

 function Start() {
     var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
     cube.name = 'CubeNumber1';


  // color cube  
 Color colorCube = new Color(139,69,19,1);
 cube.renderer.material.color = colorCube;

 }

你们能帮我处理新代码吗(最好是在 Javascript 中),同时对脚本的工作原理给出一个小的解释(所以我会在以后的上下文中理解 xd )。

首先你需要有一个有效的XML文件。

xmlcubes.txt

<?xml version="1.0" encoding="utf-8" ?>
<Cubes>
    <Cube nameCube="CubeNumber1" colorCube="139,69,19,1" />
    <Cube nameCube="CubeNumber2" colorCube="139,69,19,1" />
</Cubes>

和 javascript:

import System.Xml;
import System.IO;

function Start()
{
    var asset:TextAsset = Resources.Load("xmlcubes");
    if(asset != null)
    {
        var url = "http://www.yourserver.com/xmlcubes.txt";
        var www : WWW = new WWW(url);
        yield www;
        var reader:XmlTextReader = new XmlTextReader(new StringReader(www.text));
        while(reader.Read())
        {
            if(reader.Name == "Cube")
            {
                Debug.Log(reader.Name + " nameCube = " + reader.GetAttribute("nameCube"));

                var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
                cube.name = reader.GetAttribute("nameCube");
            }
        }
    }
}