我们正在开发一款关于驾驶意识的游戏。将视频添加到Unity3d
问题是我们需要向用户展示视频,如果他在完成驾驶后出现任何错误。例如,如果他犯了两个错误,我们需要在比赛结束时显示两个视频。
你能帮忙吗?我没有任何想法。
我们正在开发一款关于驾驶意识的游戏。将视频添加到Unity3d
问题是我们需要向用户展示视频,如果他在完成驾驶后出现任何错误。例如,如果他犯了两个错误,我们需要在比赛结束时显示两个视频。
你能帮忙吗?我没有任何想法。
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();
}
@solus已经给了你一个关于“如何从你的应用程序播放(预注册)视频”的答案。然而,从我所了解的情况来看,您正在询问如何保存(并可视化)一种由玩家执行的“错误”行为的重播。这不是一件容易的事,我不认为你能得到一个有说服力的答案,但只有一些建议。我会尽力给你我自己的。
首先,你应该在竞速车的各个时间段上“捕捉”玩家的汽车位置。例如,您可以每0.2秒读取一次玩家的汽车位置,并将其保存到结构中(例如:列表)。
然后,你会实现一些逻辑来检测“错误”行为(崩溃,超速......他们显然取决于你的游戏)和参考保存到对[“错误”,“有关该列表的一部分包含汽车对该事件的立场“]。
现在,你有你需要什么重建行动重播:那就是,使汽车“驾驶单”,通过读取先前保存的位置(这将作为航点作用产生的路由) 。显然,你还必须处理相机的位置和旋转:只要将它连接到汽车(如正常的“游戏中”动作),或者修改它,以捕捉更有趣的角度,如同AAA赛车游戏(当然,这会使整个任务更加困难)。
资产商店有两个选项:[EZ Replay Manager](https://www.assetstore.unity3d.com/#/content/3584)和[InputVCR](https://www.assetstore.unity3d .COM /#/内容/ 3071)。 – Richard
@solus:对,我忘了提及它们。顺便说一句,前者包含一个限制版本,免费发行(完整版约80美元,我认为)。相反,不知道后者。 –
使用MovieTexture,但不要忘记安装QuickTime,您需要它到import movie clip(例如.mov文件)。
不错的答案,但我认为OP问及“如何为特定的游戏内动作创建重播”,这与“阅读预先注册的视频”有所不同。我添加了自己的答案,希望能够正确理解这个问题。 –
@BiG是的,这会更有意义! – Richard