C# Textfield Null Reference Exception

Hi everyone I’m working on a version of Save and Load from XML U3 Collections where the _playername is typed in. But I keep getting a null reference exception and it tells me that the null reference is coming from the textfield. I’m not sure how to fix it. Any idea what is up?

using UnityEngine; 
using System.Collections; 
using System.Xml; 
using System.Xml.Serialization; 
using System.IO; 
using System.Text; 
 
public class _GameSaveLoad: MonoBehaviour { 
 

   Rect _Save, _Load, _SaveMSG, _LoadMSG; 
   bool _ShouldSave, _ShouldLoad,_SwitchSave,_SwitchLoad; 
   string _FileLocation,_FileName; 
   public GameObject _Player; 
   UserData myData; 
   string _PlayerName; 
   string _data; 
 
   Vector3 VPosition; 

   void Start () { 

      _Save=new Rect(10,80,100,20); 
      _Load=new Rect(10,100,100,20); 
      _SaveMSG=new Rect(10,120,400,40); 
      _LoadMSG=new Rect(10,140,400,40); 
 
      _FileLocation=Application.dataPath; 
      _FileName="SaveData.xml"; 
 

 
      myData=new UserData(); 
   } 
 
   void Update () {} 
 
   void OnGUI() 
   {

//null reference exception

_PlayerName =
GUILayout.TextField (_PlayerName,GUILayout.Width(150), GUILayout.Height(25));

   if (GUI.Button(_Load,"Load")) { 
 
      GUI.Label(_LoadMSG,"Loading from: "+_FileLocation); 
     
      LoadXML(); 
      if(_data.ToString() != "") 
      { 
        myData = (UserData)DeserializeObject(_data); 
        VPosition=new Vector3(myData._iUser.x,myData._iUser.y,myData._iUser.z);              
        _Player.transform.position=VPosition;  
        Debug.Log(myData._iUser.name); 
      } 
 
   }   
   if (GUI.Button(_Save,"Save")) { 
 
     GUI.Label(_SaveMSG,"Saving to: "+_FileLocation); 
     myData._iUser.x=_Player.transform.position.x; 
     myData._iUser.y=_Player.transform.position.y; 
     myData._iUser.z=_Player.transform.position.z; 
     myData._iUser.name=_PlayerName;     
     _data = SerializeObject(myData); 

     CreateXML(); 
     Debug.Log(_data); 
   } 
 
 
   } 
 
   string UTF8ByteArrayToString(byte[] characters) 
   {      
      UTF8Encoding encoding = new UTF8Encoding(); 
      string constructedString = encoding.GetString(characters); 
      return (constructedString); 
   } 
 
   byte[] StringToUTF8ByteArray(string pXmlString) 
   { 
      UTF8Encoding encoding = new UTF8Encoding(); 
      byte[] byteArray = encoding.GetBytes(pXmlString); 
      return byteArray; 
   } 
 

   string SerializeObject(object pObject) 
   { 
      string XmlizedString = null; 
      MemoryStream memoryStream = new MemoryStream(); 
      XmlSerializer xs = new XmlSerializer(typeof(UserData)); 
      XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8); 
      xs.Serialize(xmlTextWriter, pObject); 
      memoryStream = (MemoryStream)xmlTextWriter.BaseStream; 
      XmlizedString = UTF8ByteArrayToString(memoryStream.ToArray()); 
      return XmlizedString; 
   } 
 

   object DeserializeObject(string pXmlizedString) 
   { 
      XmlSerializer xs = new XmlSerializer(typeof(UserData)); 
      MemoryStream memoryStream = new MemoryStream(StringToUTF8ByteArray(pXmlizedString)); 
      XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8); 
      return xs.Deserialize(memoryStream); 
   } 
   void CreateXML() 
   { 
      StreamWriter writer; 
      FileInfo t = new FileInfo(_FileLocation+"\\"+ _FileName); 
      if(!t.Exists) 
      { 
         writer = t.CreateText(); 
      } 
      else 
      { 
         t.Delete(); 
         writer = t.CreateText(); 
      } 
      writer.Write(_data); 
      writer.Close(); 
      Debug.Log("File written."); 
   } 
 
   void LoadXML() 
   { 
      StreamReader r = File.OpenText(_FileLocation+"\\"+ _FileName); 
      string _info = r.ReadToEnd(); 
      r.Close(); 
      _data=_info; 
      Debug.Log("File Read"); 
   } 
} 
 

 public class UserData 
 { 

   public DemoData _iUser; 

   public UserData() { } 
  
   public struct DemoData 
   { 
      public float x; 
      public float y; 
      public float z; 
      public string name;
	  
   } 
}

Trying initializing the var first.

string _PlayerName; 

// to....

string _PlayerName = string.Empty;

The reason it’s causing a problem is that Unity is trying to put the string value in _Playername into the TextField, however it is null which gives you the exception.