UE4.26嵌入web網(wǎng)頁的各種方式
開啟webbrowser插件。
編寫C++自定義類繼承webbrowser,自定義方法實現(xiàn)中文輸入,和bind unbind,綁定方式。(這里可以copy webbrowser里面的代碼,就不用開啟webbroser插件了,一下子高端了許多。來自https://space.bilibili.com/4184423大佬的教程)
根據(jù)知乎大佬https://zhuanlan.zhihu.com/p/72106212:讀取HTML,遍歷一個函數(shù)數(shù)組內(nèi)的UE4函數(shù)名,里面是搜索HTML文中的關(guān)鍵字,點擊HTML上的onclick事件,這個事件會觸發(fā)一個函數(shù),這個函數(shù)的名字在UE4中解析,也就是說點擊一個Button后,會選擇當前點擊的doc元素,UE里面進行比對,獲取到當前點擊的doc元素,那么就會添加一個Event,這里我叫做JSEvent,這個會讀取HTML獲取當前選擇的doc元素變量,HTML中變量叫做var obj,UE這個JSEvent==OBJ[array]中的數(shù)據(jù),也就是當前JSEvent等于當前函數(shù)名數(shù)組中的點擊對象時候,返回obj,也就是返回事件,在UE4是CustomEvent。
WEB中,不管是DIV還是BUTTON還是IMG都可以調(diào)用onclick,或者自己寫Function里調(diào)用click,調(diào)用格式為:
onclick="LinkUE4('XXX')"
替換升級系統(tǒng)的CEF3。因為官方使用的cef3不新。而且對于MP4 h264沒有支持。所以需要對CEF3進行編譯和修改。 這里我修改了: \UnrealEngine4.26.2\Engine\Source\ThirdParty\CEF3\cef_binary_3.3071.1611.g4a19305_windows64 中的libcef.lib。 和……………… \UnrealEngine4.26.2\Engine\Binaries\ThirdParty\CEF3\Win64 中的全部文件。 替換為了
3.3578.1860版本。 然后還有CEF啟用 flash和webgl了。在:
FCEFBrowserApp::OnBeforeCommandLineProcessing中 添加:
CommandLine->AppendSwitchWithValue("ppapi-flash-path","C:\\pepflashplayer.dll");
C盤的?pepflashplayer.dll 如果放到別處,就寫對應(yīng)路徑就好。這個dll要從網(wǎng)上搜一下。
CommandLine->AppendSwitchWithValue("ppapi-flash-version", "30.0.0.154");
在CEF3.build.cs 添加:Dlls.Add("pepflashplayer.dll");
CreateBrowserWindow函數(shù)里開啟?
?BrowserSettings.plugins = STATE_ENABLED;
?BrowserSettings.webgl = STATE_ENABLED;
?BrowserSettings.windowless_frame_rate = 60;應(yīng)該沒啥了。這里就是對webbrowser做的一些操作了。編譯源碼好麻煩。另外還有好多功能沒有搞。