The data file will not created in my build, but it will be created when it is in Unity. I tried changing the location where the file will be created. Did not change the outcome. The code is in C#. Do I need to give my game permission to write a data file when it is in a build?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using System;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
public List LoadPreviousTimes()
{
try
{
var levelName = Path.GetFileName(selectedLevel).Replace(".json","");
var scoresFile = Application.persistentDataPath + "/" + playerName + "_" + levelName + "_times.dat";
using (var stream = File.Open(scoresFile, FileMode.Open))
{
var bin = new BinaryFormatter();
var times = (List<PlayerTimeEntry>)bin.Deserialize(stream);
return times;
}
}
catch(IOException ex)
{
Debug.LogWarning("Couldn't load previous times for: " + playerName + ". Excetion: " + ex.Message);
return new List<PlayerTimeEntry>();
}
}
public void SaveTime(deci
mal time)
{
playerName = PlayerPrefs.GetString("PlayerName");
var times = LoadPreviousTimes();
var newTime = new PlayerTimeEntry();
newTime.entryDate = DateTime.Now;
newTime.time = time;
var bFormatter = new BinaryFormatter();
var levelName = Path.GetFileName(selectedLevel).Replace(".json","");
var filePath = Application.persistentDataPath + "/" + playerName +"_"+ levelName + "_times.dat";
using (var file = File.Open(filePath, FileMode.Create))
{
times.Add(newTime);
bFormatter.Serialize(file, times);
}
}