日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

unity学习笔记-uniwebview3的使用以及一些补充(视频问题已解决)

發布時間:2023/12/9 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 unity学习笔记-uniwebview3的使用以及一些补充(视频问题已解决) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

unity學習筆記

  • uniwebview的使用
    • 使用
  • uniwebview視頻有聲音沒圖像的其中一個解決辦法
  • uniwebview視頻有聲音沒圖像的其中一個解決辦法補充
  • uniwebview補充
  • 解決視頻播放問題
  • 2021.9.3更新

uniwebview的使用

首先需要下載這個插件
unity官方的商店里就有這個可以直接下載,不過不是免費的(我是白嫖的)

使用

2.9的版本里面是有demo的,我用的是3.1,已經沒有demo了
網上的教程就是直接在場景中創建一個gameobject
然后給他添加uniwebview的腳本
然后給他添加url
這里注意,需要給這個網頁顯示一個image,網頁才能顯示出來
3.1的版本里有
紅框里的組件可以選擇,你可以把image拖進這個地方,然后最簡單的在unity里內嵌網頁的demo就出來了
這里需要注意一個地方
由于是在移動端才能顯示,所以在打包之后才能顯示出來
并且還需要在

這個文件里面,添加下面的這行代碼,否則會有err cleartext not permitted之類的異常,導致無法打開和顯示網站

android:usesCleartextTraffic="true"


也就是上面的這個位置
不過還是有一些問題需要注意
第一:打開h5游戲時會出現白屏的問題,里面的內容是正常運行的,如音頻等,就是畫面沒有
第二,目前還不太清楚怎么自定義界面,以及控制打開的方法

單純就是先記錄一下,可能需要大神指導才行,網上對這個插件的教程不多,而且我感覺這個更多的是由于jar包的原因,如果是這個的話調試起來就相當麻煩了。因為看網上對webview的說明都是在安卓環境下進行修改的,但是我這里也不能獲得uniwebview的源代碼,還得重新打包之類的,希望不是這個原因吧

隔天更新:
需要注意
如果只是單純的從unity打包成安卓apk
就會出現上面視頻播放有聲音沒圖像的bug,以及h5游戲沒有畫面的情況
但是

uniwebview視頻有聲音沒圖像的其中一個解決辦法

如果把這個unity給export,然后放在as里運行的話,這個問題就沒了
估計就是上面說的這個問題,打包給as 的時候,可能as里自帶的什么設置讓unity的webview能在as的環境下運行h5界面
但是還是那個問題,程序運行不報錯,不清楚到底是哪里的設置沒有弄好,這是真的陰間
unity打包給as,讓as進行apk打包的流程可參考小弟之前寫的帖子
unity和as交互2019版

以上,由于本身項目就是需要放在as里跑的,所以這個問題用這個方法好像暫時能解決,還有其他的內容沒有完成,這個問題只能先留著了,至少功能是實現了(dogde)
2021.6.24更新

uniwebview視頻有聲音沒圖像的其中一個解決辦法補充

在導入as再打包成apk的時候如果還是有這個問題的話,可以試試在as的app項目里的Androidmestifes.xml里添加下面的這個代碼,也就是上面的那個

android:usesCleartextTraffic=“true”

uniwebview補充

上面的這個問題不是因為沒有加配置的關系
是因為在Android里打開網頁的時候,會有網頁的緩存,所以第二次打開的時候會和之前的緩存有所沖突,需要清除掉
由于uniweview的生命周期目前還不是太了解,在摸索了一下午后,我的做法是不用uniwebview寫好的prefab,而是在需要打開頁面的時候動態的在場景中生成一個uniwebview,我用的是uniwebview3的版本,其他大佬用的好像都是比較久的,所以他們重寫uniwebview里的一些方法的時候我是用不了的,不同的版本好像有的變量和方法都變了
我是參考了其中一個大佬的方法,自己再修改了一下、
先創建一個url數組,方便調用

新建一個gameobject,重新命名。然后添加uniwebview組件
對這個組件進行一些參數的設置
load里添加你要訪問的網頁名
show顯示網頁
frame對顯示網頁的布局進行設置,這里設置的是全屏(領導の需求)

GameObject webview = new GameObject("Uniwebview");webview.AddComponent<UniWebView>();webview.GetComponent<UniWebView>().Load(urls[PlayerMoveController.sceneIndex-1] +PlayerInfo.Instance.playInfo.data.token);webview.GetComponent<UniWebView>().Show(true);webview.GetComponent<UniWebView>().Frame = new Rect(0,0,Screen.width,Screen.height);

然后運行就可以跑通了
由于不太了解這個插件的生命周期,我只是猜測的,uniwebview在通過物理鍵(手機自帶的home和返回鍵)退出內嵌網頁的時候,會順便把自己給銷毀了,因為我試過重新調用寫好的uniwebview對象的時候會直接報錯。如果是這樣的話也挺好,省的再去寫銷毀的方法
上面的寫法也不用在意網頁緩存的問題
到此基本解決~
剩下的就是設計網頁的人的事情了,除非還要再對網頁里的內容進行新的操作~

2021.6.29更新

解決視頻播放問題

最簡單粗暴的方法就是在網上購買最新的uniwebview(好像已經到4了)插件,導入就可以解決視頻播放只有聲音沒有圖像的問題
提醒
如果你導如插件后,在真機上實際運行的時候出現了
的問題,不要慌
雖然我一開始也慌了
因為最新版本的uniwebview里的androidmestfest之類的配置信息文件已經用cs進行處理了,所以他的位置不再放在plugins的android里了
那么怎么處理呢,經過我的一番推敲
發現在editor里有一個settings的配置文件信息
點他你會發現有一些默認的設置可以在這里直接進行修改
其中就有usescleartraffic的選項,把他打上勾就可以了
我試過在寫androidmestfest這個文件的cs腳本里強行寫上true,通過debug測試發現他還是會變成false,這里面還包括了一個changed的bool值,初步推測是為了防止使用者對這個插件代碼進行了一些不小心的修改導致程序無法正常運行,所以設置了這個變量來控制,加強代碼的穩定性
從這個新版本的插件上,我體會到的就是程序員無窮無盡的強大
如果不是這個插件,我都忘了配置信息文件是可以通過腳本來書寫的

2021.9.3更新

更新一個小bug
如果在使用的過程中遇到明明訪問到的是正確的地址,但是網頁打開的偏偏是其他亂七八糟的地址的bug
這個問題解決很簡單,但是試錯的過程還是挺耗精力的,因為確實不知道是什么原因引起的,在經過多方查詢和自己的實驗下發現了問題所在
就是需要在訪問完網頁之后清除一下緩存
這些個緩存過多的時候會引起很多的問題,就比如這個網頁加載的問題
這個問題他還很奇怪,有的網頁是可以打開的, 有的是不行的.當然可能跟我測試的次數太少有關,反正不管是不是這個緩存的問題,我們按照常理來說都是需要清理緩存的,這樣對性能的消耗也是很好的優化和習慣,這里記錄一下
至于清理緩存的方法其實這個uniwebview插件自帶了這個方法,在獲得這個組件之后寫上onshouldClose的委托就可以了~具體的寫法如下

webview.OnShouldClose += (view) => {webview.ClearCache();return true; }

以上是純手打的,可能會有點問題,不過大致的思路就是這樣的.就可以解決網址是正確的但是打開的是其他頁面的bug了
加油!

總結

以上是生活随笔為你收集整理的unity学习笔记-uniwebview3的使用以及一些补充(视频问题已解决)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。