【发布时间】:2018-01-11 11:24:31
【问题描述】:
所以我正在为学校开发一款游戏,一款无尽的垂直平台游戏。我遇到的问题是我可以毫无问题地生成平台,但我似乎无法弄清楚如何让它们在彼此重叠时移动或摧毁。
public void SpawnPlatforms(float floatValue)
{
yPos = spawnPlatformsTo;
while (yPos <= floatValue)
{
xPos = Random.Range(-4.5f, 4.5f);
Vector2 posXY = new Vector2(xPos, yPos);
var platformInstatiated = Instantiate(platforms[Random.Range(0, 2)], posXY, Quaternion.identity);
platformInstatiated.transform.parent = GameObject.Find("Platforms").transform;
platformInstatiated.localScale = new Vector3(Random.Range(.3f, 1f), 1, 1);
yPos += Random.Range(1f, 1.75f);
}
spawnPlatformsTo = floatValue;
}
任何帮助都将不胜感激。
【问题讨论】:
-
你不应该给你的变量类型 var,这是不好的做法,最好给它实际的对象类型。在这种情况下,platformInstatiated 应该是 GameObject。
-
有趣。我不知道,谢谢你的提示。请问为什么这被认为是不好的做法?
-
这只是命名约定的一部分。它有助于减少阅读和理解源代码所需的工作量。例如,不熟悉统一但使用 C# 的程序员不会知道 Instantiate 返回类型 GameObject,但这只是众多原因之一。这与您使用 PascalCase 方法和 camelCase 变量的原因相同。
-
完美。很高兴知道,非常感谢。我在学校学习视频游戏设计,而不是编程,所以这对我来说有点新鲜。欣赏它。