我有一个团结游戏脚本,我想改进,但我的基本C术语出错了。
我希望增加不同敌人精灵的数量,并通过在每3或4级后增加每种不同敌方精灵的速度和生成率来包括3或4级难度。
我用过
public GameObject enemy;
public GameObject enemy2;
public GameObject enemy3;
// Update is called once per frame
void Update()
{
// Handle the back button on Windows Phone 8
if (Input.GetKeyDown(KeyCode.Escape))
{
HandleBackbutton();
}
spawnNewEnemyTimer -= Time.deltaTime;
if (spawnNewEnemyTimer <= 0)
{
spawnNewEnemyTimer = 5;
int spawnNumberOfEnemies = 1 + (level/2);
for (int i = 0; i < spawnNumberOfEnemies; i++)
{
GameObject enemyToSpawn;
enemyToSpawn = enemy;
if (level > 2)
{
float rndEnemy = Random.Range(0.0f, 1.0f);
if (rndEnemy > 0.5)
{
enemyToSpawn = enemy;
}
else
{
enemyToSpawn = enemy2;
}
else
{
enemyToSpawn = enemy3; //GIVING ME ERROR HERE
}
}
float modifier = Random.Range(-1.0f, 1.0f) * 3;
Instantiate(enemyToSpawn, new Vector3(player.transform.position.x + 20.0f + i * 3,
player.transform.position.y + modifier, 0.0f), Quaternion.identity);
}
float rndPowerupHp = Random.Range(0.0f, 1.0f);
if (rndPowerupHp < 0.1)
{
Instantiate(hpPowerUp, new Vector3(player.transform.position.x + 30.0f,
player.transform.position.y, 0.0f), Quaternion.identity);
}
float rndBuilding = Random.Range(0.0f, 1.0f);
if (rndPowerupHp < 0.5)
{
GameObject whatBuilding = building1;
float rndWhatBulding = Random.Range(0.0f, 1.0f);
if (rndWhatBulding > 0.5)
{
whatBuilding = building1;
}
else
{
whatBuilding = building2;
}
Instantiate(whatBuilding, new Vector3(player.transform.position.x + 30.0f,
0.0f, 0.005f), Quaternion.identity);
}
}
但是它给了我错误。
答案 0 :(得分:0)
问题很可能是由于您的缩进不当造成的。这会导致您在涉及大括号时出错:
这部分代码
if (level > 2)
{
float rndEnemy = Random.Range(0.0f, 1.0f);
if (rndEnemy > 0.5)
{
enemyToSpawn = enemy;
}
else
{
enemyToSpawn = enemy2;
}
else
{
enemyToSpawn = enemy3; //GIVING ME ERROR HERE
}
}
正确缩进时看起来像这样:
if (level > 2)
{
float rndEnemy = Random.Range(0.0f, 1.0f);
if (rndEnemy > 0.5)
{
enemyToSpawn = enemy;
}
else
{
enemyToSpawn = enemy2;
}
else
{
enemyToSpawn = enemy3; //GIVING ME ERROR HERE
}
}
这应该使错误非常明显。在初始版本之后,您有第二个else
语句。那不会飞。
因此,请务必检查您的缩进。这将有助于您预防或识别此类错误。