XML如何在同一个变量

时间:2018-04-12 17:00:00

标签: c# xml unity3d

我有我在游戏中使用的XML表格。 在我的团结(C#)游戏中,游戏中的怪物可以在预定位置或随机位置产生。

<monster delay="0.2" isRed = "true" position ="random"/>
<monster delay="0.3" isRed = "true" position ="10 20"/>

现在我读取位置值,如果它是“随机”,那么我为怪物分配随机位置。

如果它不是“随机”,那么我解析该值,用空格键分隔它们然后使用我从“位置”获得的两个数字作为我的怪物的位置。

我得到这种直觉,我正在做的事情可能是非常丑陋和低效的,可能有更好的方法来做到这一点,但我不确定。

2 个答案:

答案 0 :(得分:2)

这似乎很好。可能有很多不同的方法可以做到这一点,但你如何做这件事并没有什么本质上的错误。如果您还没有random命令,我可能会告诉您将位置坐标分为posX ="10"posY ="20",但是因为您已经寻找非数字命令值,将它们组合并解析它们并没有错。 (你可以分开它们并为X和Y坐标设置random,让你可以灵活定义一个并使另一个随机...)

答案 1 :(得分:1)

而不是要求abs(a)>=1e-4微分析以分隔@positionx,而不是agree with Bill the Lizard about using distinct attributes。我会更进一步,建议您使用数字和非数字值重载y,但也将随机大小写入其自己的属性:

@position

您可能还会将<monster delay="0.3" isRed="true" startX="10" startY="20" startRandom="false"/> 的默认值设为false,因此在提供坐标时会省略它:

@startRandom

或者,您可以定义缺少起始坐标以暗示随机性。那么你就有了协调的案例,

<monster delay="0.3" isRed="true" startX="10" startY="20"/>

和随机案例,

<monster delay="0.3" isRed="true" startX="10" startY="20"/>

最后,提前计划其他颜色怪物:

<monster delay="0.3" isRed="true"/>