我非常擅长编码如何更改此代码:
IEnumerator SpawnWave()
{
waveIndex++;
for (int i = 0; i < waveIndex; i++)
{
SpawnEnemy();
yield return new WaitForSeconds(0.5f);
}
}
添加WaveIndex
值的10%的代码。
答案 0 :(得分:0)
对于故障安全答案,我错过了waveIndex
的类型。因为它被称为&#34; ...索引&#34;并且使用了运算符++
,我假设它是一个整数值(waveIndex
的类型为int
)。
<强> TL; DR 强>
使用waveIndex = (int)Math.Ceiling(1.1 * waveIndex);
而不是waveIndex++;
并确保waveIndex始终大于0.如果乘法的结果不是整数,则该值将向上舍入到下一个更大的整数值。
警告强>
如果你总是向waveIndex
添加10%而waveIndex
只能存储整数值(例如因为它是int
类型),你永远不会从1到2,因为舍入效应。
因此,您必须使用waveIndex
的其他类型而不是int
,使用Math.Ceiling
并使用1 {1}或更大的waveIndex
,使用Math.Round
并且从5或更大的waveIndex
开始,或者您必须从10个或更大的waveIndex
开始。
整数值的详细答案
有很多表达式会增加10%的数值。但我只会介绍其中的两个 - 希望是最简单的,帮助您学习如何编码。
我认为waveIndex
的类型是整数。因此,您必须在计算后将结果强制转换为整数。这是通过在数学表达式周围添加括号并在左括号前添加(int)
来完成的。
// First example for adding 10% to an integer.
waveIndex = (int)(1.1 * waveIndex);
// Second example for adding 10% to an integer.
waveIndex = (int)(waveIndex + 0.1 * waveIndex);
默认情况下,结果将向下舍入到下一个较小的整数值。若要更改此行为,您可以使用以下语句之一。
// Rounds e.g. 1.4 down to 1 and 1.5 up to 2.
waveIndex = (int)Math.Round(1.1 * waveIndex);
// Rounds e.g. 1.1 up to 2.
waveIndex = (int)Math.Ceiling(1.1 * waveIndex);
由于Math.Ceiling
和Math.Round
返回double类型的结果,因此必须再次使用(int)
将其转换为整数。
所以你的完整代码就是例如看起来像以下版本。它将{10}增加到waveIndex
并将值向下舍入到下一个较小的整数。
IEnumerator SpawnWave()
{
waveIndex = (int)Math.Round(1.1 * waveIndex);
for (int i = 0; i < waveIndex; i++)
{
SpawnEnemy();
yield return new WaitForSeconds(0.5f);
}
}
答案 1 :(得分:-1)
- open the admin console
- the Applications and uninstall your app.
- stop the server.
- right click the server and choose add of remove projects and then remove the app from there
- start the server. and deploy your ear again.
还有什么可说的?我通过我的宏伟代码说话!