将视频添加到Unity3d

时间:2013-08-31 16:30:34

标签: unity3d

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

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

你能帮忙吗?我什么都不知道。

3 个答案:

答案 0 :(得分:2)

@solus已经就“如何从您的应用程序播放(预先注册)视频”给出了答案。但是,根据我的理解,你要求保存(和可视化)一种由玩家执行的“错误”动作的重放。这不是一件容易的事,我不认为你可以得到一个有效的答案,但只有一些建议。我会尽力给你自己的。

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

然后,您将实施一些逻辑来检测“错误”操作(崩溃,超速......显然取决于您的游戏)和保存参考该对[“错误”,“该列表的相关部分包含该事件的汽车位置”]。

现在,您拥有了重新创建动作重放所需的一切:即通过阅读之前保存的位置(将作为航点的航点)使汽车“独自驾驶”产生路线)。

显然,你还需要处理相机的位置和旋转:只需将它连接到汽车上(作为正常的“游戏中”动作),或者在时间内修改它以捕捉更有趣的角度,如AAA赛车游戏(当然,这将使整个任务更加困难)。

答案 1 :(得分:1)

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

简单地应用它就像任何纹理一样。您可以使用平面或扁平立方体。您应该将其localScale调整为视频的宽高比(movie.width/(float)movie.height)。

将附加的audioclip放入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();
}

答案 2 :(得分:0)

使用MovieTexture,但不要忘记安装QuickTime,你需要它import movie clip(例如.mov文件)。

相关问题