[英]Adding values from text file to 2D Array c#
編輯---我在foreach循環中將值添加到2D數組時遇到麻煩。 Hari指出,我需要在循環之前聲明i = 0和數組,並且將值的分配向后分配。 (謝謝)。 但是,我試圖添加一個最終的強度數組並在Debug.Log中記錄i的值,並且控制台將讀取“ System.Single []”,而不是單個值。 知道為什么會這樣嗎? 謝謝!!
這是我的代碼:
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
//[Serializable]
public class MultiArrayList2 : MonoBehaviour {
public TextAsset datafile;
private int i;
private float[,] coordinates;
private float[] intensity;
// Use this for initialization
void Start() {
string[] dataLines = datafile.text.Split ('\n');
string[] lineValues;
//print (dataLines.Length);
i=0;
float[,] coordinates = new float[6853, 3];
float[] intensity = new float[6853];
foreach (string line in dataLines) {
lineValues = line.Split (' ');
float coordinateX = float.Parse (lineValues [0]);
float coordinateY = float.Parse (lineValues [1]);
float coordinateZ = float.Parse (lineValues [2]);
float intens = float.Parse (lineValues [3]);
coordinates [i, 0] = coordinateX;
coordinates [i, 1] = coordinateY;
coordinates [i, 2] = coordinateZ;
intensity [i] = intens;
Debug.Log (intensity);
i++;
}
}
}
您沒有為數組元素分配任何內容,首先要使數組的元素不包含任何值,然后才將它們分配給coordinateX
否則應該相反,
coordinates [i, 0] = coordinateX;
幾點。
i
,請在循環之前初始化此變量( foreach
) coordinates
初始化移到下一行。 Debug.Log
總是尋找第一個坐標,我相信您想為每個坐標將其更改為i
。 嘗試這個。
i=0;
int[,] coordinates = new int[6853, 3];
foreach (string line in dataLines) {
lineValues = line.Split (' ');
int coordinateX = int.Parse (lineValues [0]);
int coordinateY = int.Parse (lineValues [1]);
int coordinateZ = int.Parse (lineValues [2]);
float intensity = float.Parse (lineValues [3]);
coordinates [i, 0] = coordinateX;
coordinates [i, 1] = coordinateY;
coordinates [i, 2] = coordinateZ;
Debug.Log(coordinates [i, 0]);
i++;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.