在运行时,我记录了我想在构建中播放的输入。所以我在 Resources 目录下创建了一个 txt 文件,我在整个运行时使用 StreamWriter 填充文本。关闭项目后,内容以场景模式保留在那里,但在构建和运行它后不存在。我已经在网上搜索了一段时间,但没有找到与我的问题相关的任何内容。我尝试使用 StreamingAssets 文件夹,但我也没有让它工作。谢谢你的帮助。
if (!Directory.Exists("Assets/Resources/Recordings"))
{
Directory.CreateDirectory("Assets/Resources/Recordings");
}
if (!File.Exists("Assets/Resources/Recordings/Challenge1.txt"))
{
File.WriteAllText("Assets/Resources/Recordings/Challenge1.txt", "");
}
编辑:开关(模式)
case Mode.Record:
oldSequence.init ();
currentSequence.init ();
inputRecordStream = new StreamWriter (FilePath, false); // will overwrite new file Stream
if (inputRecordStream.ToString () == "")
{
Stop ();
Debug.Log ("InputReplay: StreamWriter(" + FilePath + "), file not found ?");
return false;
}
else
{
inputRecordStream.AutoFlush = true;
SetInputStd ();
}
break;
记录方法:
private void Record(float time)
{
currentSequence.init ();
currentSequence.t = time;
// store only true boolean
foreach (KeyCode vkey in System.Enum.GetValues(typeof(KeyCode)))
{
if (Input.GetKey (vkey))
currentSequence.gK.Add (vkey);
if (Input.GetKeyDown (vkey))
currentSequence.gKD.Add (vkey);
if (Input.GetKeyUp (vkey))
currentSequence.gKU.Add (vkey);
}
currentSequence.mP = Input.mousePosition;
currentSequence.mWP = Camera.main.ScreenToWorldPoint (currentSequence.mP);
currentSequence.mSD = Input.mouseScrollDelta;
foreach (string virtualAxis in AxisList)
currentSequence.vA.Add (Input.GetAxis (virtualAxis));
foreach (string ButtonName in ButtonList)
{
if (Input.GetButton (ButtonName))
currentSequence.vB.Add (ButtonName);
if (Input.GetButtonDown (ButtonName))
currentSequence.vBD.Add (ButtonName);
if (Input.GetButtonUp (ButtonName))
currentSequence.vBU.Add (ButtonName);
}
// only write if something changed
if (AnyChange(oldSequence, currentSequence))
{
//Debug.Log (JsonUtility.ToJson (newSequence));
inputRecordStream.WriteLine (JsonUtility.ToJson (currentSequence));
oldSequence = currentSequence;
}
}