1

我们正在开发一款关于驾驶意识的游戏。

问题是如果他在完成驾驶后犯了任何错误,我们需要向用户显示视频。例如,如果他犯了两个错误,我们需要在游戏结束时显示两个视频。

你能帮忙吗?我没有任何想法。

4

3 回答 3

2

@solus 已经给了你一个答案,关于“如何从你的应用程序中播放(预先注册的)视频”。但是,据我了解,您是在询问是否为玩家执行的“错误”动作保存(和可视化)一种重播。这不是一件容易的事,我认为您不会得到详尽的答案,而只能得到一些建议。我会尽量给你我自己的。

首先,你应该“捕捉”玩家汽车在不同时间段的位置。例如,您可以每 0.2 秒读取玩家的汽车位置,并将其保存到结构中(例如:列表)。

然后,您将实现一些逻辑来检测“错误”动作(崩溃、超速......它们显然取决于您的游戏)并保存对 ["mistake", "list of the relevant section contains car's position for那个事件”]。

现在,您已经拥有了重新创建动作回放所需的一切:也就是说,通过读取先前保存的位置(将充当生成路线的航路点)使汽车“单独驾驶”。

显然,您还必须处理相机的位置和旋转:只需将其固定在汽车上(作为正常的“游戏中”动作),或者在时间修改它以捕捉更有趣的角度,如 AAA 赛车游戏做(当然,这会使整个任务变得更加困难)。

于 2013-09-02T09:41:41.213 回答
1

Unity 会将视频导入为MovieTexture. 它将被转换为原生 Theora/Vorbis (Ogg) 格式。(如果导入失败,请使用ffmpeg2theora 。)

只需像使用任何纹理一样应用它。您可以使用平面或平面立方体。您应该将其调整localScale为视频的纵横比 ( movie.width/(float)movie.height)。

将随附的音频剪辑放入AudioSource. 然后调用movie.Play()audio.Play()

您还可以从本地文件路径或网络(以正确的格式)加载视频。

var movie = new WWW(@"file://C:\videos\myvideo.ogv").movie;

...

if(movie.isReadyToPlay)
{
    renderer.material.mainTexture = movie;
    audio.clip = movie.audioClip;
    movie.Play();
    audio.clip.Play();
}
于 2013-09-02T09:12:19.980 回答
0

使用 MovieTexture,但不要忘记安装 QuickTime,您需要它来导入影片剪辑(例如 .mov 文件)。

于 2015-05-18T21:34:56.203 回答