我正在使用EditorWindow。
在脚本顶部:
<PropertyGroup>
<OutputPath>bin\$(Configuration)\</OutputPath>
<DocumentationFile>obj\$(Configuration)\ProjectName.xml</DocumentationFile>
</PropertyGroup>
内部OnGUI:
private int h = 0, m = 0, s = 0;
private static int Hours = 0;
private static int Minutes = 0;
private static int Seconds = 0;
保存方法:
private void OnGUI()
{
EditorGUI.BeginChangeCheck();
Hours = EditorGUILayout.IntSlider("Set the hours",Hours,0, 59);
Minutes = EditorGUILayout.IntSlider("Set the minutes", Minutes, 0, 59);
Seconds = EditorGUILayout.IntSlider("Set the seconds", Seconds, 0, 59);
if (EditorGUI.EndChangeCheck())
{
h = Hours;
m = Minutes;
s = Seconds;
}
}
JsonHelper类:
private void SaveTimerValues()
{
string jsonTimer = JsonHelper.ToJson(, true);
File.WriteAllText(@"d:\json\json.txt", jsonTimer);
}
在SaveTimerValues内,sonHelper.ToJson应该获得第一个参数作为数组。
并重新加载值:
using UnityEngine;
using System.Collections;
using System;
public class JsonHelper
{
public static T[] FromJson<T>(string json)
{
Wrapper<T> wrapper = UnityEngine.JsonUtility.FromJson<Wrapper<T>>(json);
return wrapper.Items;
}
public static string ToJson<T>(T[] array, bool prettyPrint)
{
Wrapper<T> wrapper = new Wrapper<T>();
wrapper.Items = array;
return UnityEngine.JsonUtility.ToJson(wrapper, prettyPrint);
}
[Serializable]
private class Wrapper<T>
{
public T[] Items;
}
}
但是我如何首先保存计时器值,然后如何读回它们并将其分配给每个变量:小时,分钟,秒?
答案 0 :(得分:1)
如果您真的要保存和读取这样的值。考虑让课程计时器
class Timer {
public int Hours = 0;
public int Minutes = 0;
public int Seconds = 0;
}
但是您应该真正考虑使用DateTime
并改为使用它。
JSON
也是一个简单的字符串,因此您可以使用
string timerInJson = UnityEngine.JsonUtility.ToJson(timer);
File.WriteAllText(@"d:\json\json.txt", timerInJson);
那样阅读。
string jsonTimer = File.ReadAllText(@"d:\json\json.txt");
Timer timer = JsonUtility.FromJson<Timer>(jsonTimer);