Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 构建Unity3D项目后文本文件为空_C#_Unity3d_Build_System.io.file - Fatal编程技术网

C# 构建Unity3D项目后文本文件为空

C# 构建Unity3D项目后文本文件为空,c#,unity3d,build,system.io.file,C#,Unity3d,Build,System.io.file,在运行时,我记录我希望在构建中回放的输入。因此,我在Resources目录下创建了一个txt文件,我在运行时使用StreamWriter在其中填充文本。在关闭项目后,内容将以场景模式保留在那里,但在构建和运行项目后不会保留。我在网上搜索了一段时间,但没有找到任何与我的问题有关的东西。我尝试使用StreamingAssets文件夹,但也没有成功。谢谢你的帮助 if (!Directory.Exists("Assets/Resources/Recordings"))

在运行时,我记录我希望在构建中回放的输入。因此,我在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", "");
    }
编辑:切换(模式)

记录方法:

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;
    }
}
File.WriteAllText(“Assets/Resources/Recordings/Challenge1.txt”,”;
使用时,请确保包含要写入文件的数据。您只包含了“”,它不会将任何字符写入文件


要导入要在运行时使用的资产,可以使用。这将允许您在运行时访问unity脚本中的文件。

您的文件challenge1.txt为空,正常情况下,您在其中写入“”。!哦,好的。因此,我没有将它们包括在构建中,我只是在其中创建了新文件。您知道如何将运行时创建的文本文件包含在构建中吗@法语是的,但显示更多代码..如何构建文本
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;
    }
}