unity 3d 中如何實現以物體的表面作為播放視頻的位置,比如在牆面播放視頻?
本來還準備什麼投影貼花,或者用sprite做序列幀播放,但是實際操作了一下,Unity真的是進步了。
在Unity5.6版本中出了VideoPlay功能,具體可以看這篇文章:
https://zhuanlan.zhihu.com/p/28938996的VideoPlayer視頻播放模塊
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開發工作流程?