0

我的 Unity VR 游戏(使用 SteamVR)中集成了一个热图插件。当用户注视游戏中的不同元素时,该插件使用眼动追踪信息生成实时热图。随着热图的生成,整个相机视图(用户的)被热图信息覆盖,并使用 FFMPEG 写入 MP4 文件。


整个过程运行良好。但是我有一个烦人的问题,在录制过程中,用户的相机视图不稳定,并且只有在录制停止时才会闪烁并停止。它打断了他的游戏流畅现在,我已经缩小了导致问题的代码,

        public void Write(byte[] data)
    {
        if (_subprocess == null) return;

        _stdin.Write(data);
        _stdin.Flush();
    }

据我了解,正是在这部分代码中调用了 stdinput 来写入文件系统。因此,我推测问题一定出在访问文件系统上,而在更新方法中写入每一帧时,这又必然会导致一些时间延迟。如果我在这里错了,请纠正我。 在此处输入图像描述

在每帧写入期间出现的加载屏幕看起来像上面的样子。它打断了游戏的流畅流程,也使记录变得毫无用处,因为用户一直专注于闪烁而不是实际感兴趣的对象。如果有人在这里对这个问题有所了解,我将不胜感激?

4

1 回答 1

0

访问文件系统总是需要大量时间。尝试将该工作卸载到另一个线程或Coroutine

于 2018-10-27T22:50:21.053 回答