unity 3d 中如何實現以物體的表面作為播放視頻的位置,比如在牆面播放視頻?


本來還準備什麼投影貼花,或者用sprite做序列幀播放,但是實際操作了一下,Unity真的是進步了。

在Unity5.6版本中出了VideoPlay功能,具體可以看這篇文章:

https://zhuanlan.zhihu.com/p/28938996VideoPlayer視頻播放模塊

VideoPlay的效果如下:

其實準備非常簡單,一個MP4格式的視頻文件

然後準備一個播放的牆面

這樣播放就可以了,但是視頻播放分割在了各個牆面上

所以你最好在單獨要播放的前面上加一個網格

這樣就搞定了~

最後如果要播放音頻

添加音頻組件賦值。

最後再看一下家庭影院:


為什麼搜unity3d mmd會搜到這問題...

因為某些原因剛好調研過這方面的方案:

PC上可以用Unity - Manual: Movie Texture ,需要安裝QuickTime;

iOS/Android上可以使用插件Asset Store Easy Movie Texture 或 Asset Store UMP (Android, iOS) ,都是收費的。

如果想自己寫,也不麻煩:

Android參考oculus mobile sdk里的VrAppSupport/MediaSurfacePlugin/Projects例子,原理是把unity3d的texture與Android播放器的SurfaceTexture共用;

iOS參考imclab/iOS-VideoPlayerPlugin ,這個項目曾今是github/unity3d-jp這個組織下的官方例子,現在好像被刪掉了;

自己寫的過程中,如果使用系統的MediaPlayer和AVPlayer,一定會碰到視頻格式支持不夠的問題,這時候可以接入B站播放器項目:Bilibili/ijkplayer (基於ffmpeg3.2,ffmpeg支持的視頻格式全部支持,並且能夠使用Android/iOS平台的硬解api進行播放)


MovieTexture基本可以滿足你的需要,比如說在場景里有個電視的模型,那麼你可以將MovieTexture組件附著到電視機屏幕上,然後通過編寫腳本來控制視頻播放即可,但這種方式支持的格式相對比較少,而且完全依賴蘋果的QuickTime,總之需要你折騰一番,或者就是選擇第三方的插件了,這種功能就基本上忽略移動平台了。


用unity自帶的videoplayer組件


推薦閱讀:

學習 Unity3D 開發,有哪些資源(論壇或網站)?
有哪些推薦的Unity3D開發方面的博客?
如何讓3D遊戲中人物上下樓腳踏實地?
unity開發工作流程?

TAG:遊戲開發 | Unity遊戲引擎 | 3D遊戲開發 |