- Home /
Question by
unity_lF98_nVJe9di1A · May 06, 2019 at 06:37 PM ·
filetextassetcsvstreamreader
Using OpenFilePanel at runtime to open a file as a TextAsset to read data is giving NullReferenceException
I am trying to open a csv file using the OpenFile Dialog window which I will convert to a TextAsset and then Split accordingly to read the data, but it keeps giving me a NullReferenceException.
NullReferenceException: Object reference not set to an instance of an object
CsvNameSpace.CsvReader+<SetAngles>d__34.MoveNext () (at Assets/CsvReader.cs:92)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
CsvNameSpace.CsvReader:Update() (at Assets/CsvReader.cs:80)
Here is my code:
using System.Collections;
using System.IO;
using System.Text;
using UnityEditor;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
namespace CsvNameSpace {
public class CsvReader : MonoBehaviour
{
public string[] fieldsNext;
public string[] fields;
public TextAsset csvFile;
public Button record;
public GameObject rWrist;
public GameObject rPalm;
public GameObject indexMeta;
public GameObject thumbMeta;
public GameObject middleMeta;
public GameObject ringMeta;
public GameObject pinkyMeta;
public GameObject index_1;
public GameObject index_2;
public GameObject index_3;
public GameObject indexEnd;
public GameObject thumb_1;
public GameObject thumb_2;
public GameObject thumbEnd;
public GameObject middle_1;
public GameObject middle_2;
public GameObject middle_3;
public GameObject middleEnd;
public GameObject ring_1;
public GameObject ring_2;
public GameObject ring_3;
public GameObject ringEnd;
public GameObject pinky_1;
public GameObject pinky_2;
public GameObject pinky_3;
public GameObject pinkyEnd;
// Update is called once per frame
int i = 0;
long previoustime = 0;
void Start()
{
record.onClick.AddListener(ChangeScene);
//open file dialog
var path = EditorUtility.OpenFilePanel("", "","CSV");
if (path == "")
{
//if no file is chosen then change back to recording scene
ChangeScene();
}
else
{
StreamReader file = new StreamReader(path);
//load file as a TextAsset
csvFile = Resources.Load(path) as TextAsset;
Debug.Log(path);
}
}
void Update()
{
StartCoroutine(SetAngles());
i++;
}
IEnumerator SetAngles()
{
print("Time " + Time.time);
if (i > 0)
{
//put CSV file into array called records by obtaining each row
string[] records = csvFile.text.Split('\n');
//ERROR OCCURS HERE ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Comment
Answer by vickychaudhary8955 · Mar 27 at 01:19 AM
did you get any answers coz i am facing the same thing and if you can help me out it will be grateful.
Your answer
![](https://koobas.hobune.stream/wayback/20220612200829im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Can not output CSV file 1 Answer
TextAsset read non txt files 3 Answers
Can't read lines from file by using StreamReader on Android platform 2 Answers
Read and interpret data from .txt in real time, line by line 0 Answers
How does a TextAsset work? 1 Answer