从统一存储在服务器上的 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");
}
}
}
}
我看过一些关于将数据从 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");
}
}
}
}