循环中的数组减法

时间:2016-03-13 11:43:09

标签: c# arrays unity3d operation

我创建了一个222行和3列的数组。之后我在第222行放了一些值(x,y,z)。现在我想做以下几点:

// create an array of 222 rows and 3 columns filled with zeros 
public float[,] arrayPosSpheres = new float[222, 3];


enter code here//loop change of x value for each of the spheres 

    for (int k = 220; k = 0; k--) {

        arrayPosSpheres [k, 0] =  arrayPosSpheres [k + 1, 0] - sizeSphere * overlay;


    }

所以我想有一个值220,第0列,它将是第221行的值,第0列减去某些东西。但是,我收到了一个错误。

Assets / Scripts / SineWaveSpheres.cs(138,51):错误CS0019:运算符-' cannot be applied to operands of type float'和`UnityEngine.Vector3'

Assets / Scripts / SineWaveSpheres.cs(136,17):错误CS0029:无法隐式转换类型int' to bool'

我该怎么做?

1 个答案:

答案 0 :(得分:1)

for循环中,您将0分配给k,而不是检查k是等于还是大于k

for (int k = 220; k >= 0; k--)

作为旁注,尽量避免使用固定数字。 arrayPosSpheres.GetLength(0);将返回行的长度,即222.使用它初始化k并从中减去2作为索引和最后的固定值

for (int k = arrayPosSpheres.GetLength(0) - 2; k >= 0; k--)