2016-03-12 4 views
0

Я создал 2D-массив: 3 столбцы и 222 строк (см. Код). И теперь я хотел бы вставить в первую строку 0,0,0. Как я могу это сделать.Вставить переменные в 2D-массив

До сих пор у меня есть это:

public float[,] arrayPosSpheres = new float[222, 3]; 

//array row one with zeros 
arrayPosSpheres [0] = [0,0,0]; 

Позже я хотел бы иметь доступ к этим значениям в моем массиве. Так, например, Row one и column 2. Как я могу это сделать?

Edit:

// Update is called once per frame (ORIGINAL) 
void Update() 
{ 
    int initialpos = 10; 
    //create an array with 3 columns (x,y,z) and numberOfPoints rows 
    //Vector3[] arrayPosSpheres=new Vector3[(int)(20/(sizeSphere*overlay))]; 

    for (int j = 0; j < 221; j++) 
    { 
     arrayPosSpheres [j] = arrayPosSpheres [j + 1]; 
    } 

    float functionXvalue = 221 * scaleInputRange/222; 
    if (animate) 
    { 
     functionXvalue += Time.time * animSpeed; 
    } 

    arrayPosSpheres [221]= Vector3 (functionXvalue,ComputeFunction(functionXvalue)*scaleResult,0); 

    for (int i = 0; i < 221; i++) 
    { 
     arrayPosSpheres [i] = arrayPosSpheres [i + 1]; 
    } 

    for (int m = 221; m = 0; m--) 
    { 
     for (int q = 0; q < 3; q++) 
     { 
      // access of x,y and z values of sphere 221 
      plotPoints[m].transform.position = arrayPosSpheres[m][q]; 
     } 
    } 
} 
+0

Возможно, вы захотите указать язык, который вы используете. Я для одного не признаю синтаксис массива. –

+1

извините. Я использую C#. Точнее, C# в Unity. – sportente

+0

После создания массива как типа numeric (в этом случае float) все значения в массиве уже равны 0, поэтому не нужно это делать, кроме как если они уже содержат значения и вы хотите их сбросить. – ehh

ответ

0

Спасибо за ваш ответ. Мне нужно два цикла, я думаю, один для доступа к строкам и один для доступа к столбцам.

Would что-то вроде это верно:

// 
public float[,] arrayPosSpheres = new float[222, 3]; 


GameObject[] plotPoints; 


// Use this for initialization 
void Start() { 

    //array row one with zeros 
    arrayPosSpheres [0][0] = 0; 
    arrayPosSpheres [0][1] = 0; 
    arrayPosSpheres [0][2] = 0; 


    //fill whole array with zeros 
    for (int k = 1; k <= 221; k++) { 

     for (int s = 1; s <= 3; s++) { 

      arrayPosSpheres [k] [s] = arrayPosSpheres [k - 1] [s - 1]; 

     } 


    } 

Моя цель состоит в том, чтобы в первом ряду, как я сказал нули. И тогда я бы заполнил свой массив нулями на основе нулей в первой строке.

+0

Я понял, что вы сделали с циклом for. Но как мне продолжить, когда я буду использовать две петли, чтобы заполнить мой массив нулями 0. Line? – sportente

+0

Мне хотелось бы, чтобы только сфера 222 двигалась синусоидально, и все остальные сферы занимали положение сферы для t-1. Вы видите, что я имею в виду? Извините за эти объяснения ... – sportente

Смежные вопросы