我使用 VR 在 Unity 中创建了一个场景,我想跟踪用户的位置并将其保存到 CSV 文件中。因为我只想要某些任务的位置,所以我不想为整个场景运行脚本。因此创建了一个脚本,通过按钮上的简单 OnClick 事件启用和禁用脚本。
所以我创建了一个脚本,通过按钮上的简单 OnClick 事件启用和禁用脚本。我遇到的问题是,每次我禁用脚本并再次启用它时,都不会创建另一个 csv 文件。
这是我的代码:
public class Eins : MonoBehaviour
{
    string filePath = @"";
    string filename;
    string fullPath;
    string delimiter = "\t";
    StreamWriter sw;
    string[] output;
    string finalOutput;
    public GameObject Camera;
    private float timer = 0f;
    // Start is called before the first frame update
    void Start()
    {
        filename = "Results_" + DateTime.Now.ToString("yyyy-mm-dd-hh-ss") + "_" + ".txt" + "";
        filename = filename.Replace("/", "_");
        filename = filename.Replace(":", "_");
        filename = filename.Replace(" ", "_");
        fullPath = Path.Combine(filePath, filename);
        sw = new StreamWriter(fullPath, true);
    }
    // Update is called once per frame
    public void Update()
    {
        timer += Time.deltaTime;
        output = new string[]
        {   
            timer.ToString(),
            Camera.transform.position.x.ToString(), Camera.transform.position.z.ToString()
        };
        finalOutput = String.Join(delimiter, output);
        sw.WriteLine(finalOutput);
    }
所以我已经发现问题出在启动函数中。因为它在场景运行时只被调用一次,所以我的文件只会被创建一次。但实际上我不知道如何解决这个问题,因为我不知道如何拥有一个在每次再次启用脚本时创建一个 csv 文件的函数。
如果有人可以帮助我,我将不胜感激。