HumanoidControl_Free/Runtime/Visitors/Scripts/VisitorConfiguration.cs
Pascal Serrarens 17741d862a First commit
2022-01-12 10:50:57 +01:00

80 lines
2.6 KiB
C#

using System.IO;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Passer {
[System.Serializable]
public class VisitorConfiguration {
public string name;
public string startSite;
protected static string filePath {
get {
string filePath = Path.Combine(Application.persistentDataPath, "startup.json");
return filePath;
}
}
protected static string streamingPath {
get {
string filePath = Path.Combine(Application.streamingAssetsPath, "startup.json");
return filePath;
}
}
private static VisitorConfiguration _configuration;
public static VisitorConfiguration configuration {
get {
if (_configuration == null)
GetConfiguration();
return _configuration;
}
}
private static VisitorConfiguration GetConfiguration() {
if (_configuration != null)
return _configuration;
#if UNITY_ANDROID
if (File.Exists(filePath)) {
string json = File.ReadAllText(filePath);
_configuration = JsonUtility.FromJson<VisitorConfiguration>(json);
}
else {
if (File.Exists(streamingPath)) {
string json = File.ReadAllText(streamingPath);
_configuration = JsonUtility.FromJson<VisitorConfiguration>(json);
}
}
#else
if (File.Exists(filePath)) {
string json = File.ReadAllText(filePath);
_configuration = JsonUtility.FromJson<VisitorConfiguration>(json);
}
else
_configuration = new VisitorConfiguration();
if (File.Exists(streamingPath)) {
string json = File.ReadAllText(streamingPath);
VisitorConfiguration sConfiguration = JsonUtility.FromJson<VisitorConfiguration>(json);
_configuration.startSite = sConfiguration.startSite;
}
#endif
if (_configuration == null)
_configuration = new VisitorConfiguration();
return _configuration;
}
public static void SaveConfiguration() {
string json = JsonUtility.ToJson(configuration);
File.WriteAllText(filePath, json);
#if !UNITY_ANDROID
if (!Directory.Exists(Application.streamingAssetsPath))
Directory.CreateDirectory(Application.streamingAssetsPath);
File.WriteAllText(streamingPath, json);
#endif
}
}
}