很簡單,在場景中添加一個UGUI按鈕,實現點擊就切換全屏/非全屏狀態web
其實發布出webgl以後,頁面上場景窗口右下會有一個按鈕,就是切換全屏的,可是想用代碼在程序裏實現瀏覽器
首先看頁面上那個按鈕的js腳本是怎麼寫的安全
<div class="fullscreen" onclick="gameInstance.SetFullscreen(1)"></div>
注意裏面的代碼就一行:ide
gameInstance.SetFullscreen(1);
也就是在Unity中調用外面的js方法
因此先在js中寫個切換全屏的方法webgl
function FullScrSwitch(para){ gameInstance.SetFullscreen(para); }
para是參數,爲1時全屏,爲0時退出全屏code
在Unity的按鈕點擊事件方法中寫事件
private bool isFullSrc=false; private void onClick() { int para=isFullSrc?"1":"0"; Application.ExternalCall("FullScrSwitch",para); }
按理說這樣一調用,就像調用其它的js方法同樣,應該可用
可是,點擊按鈕沒有切換全屏it
頁面上按F12打開控制檯,發現報錯,就是不能經過這種調用實現全屏,查了一下,這個還不是Unity的問題,是瀏覽器出於安全什麼的考慮,這種從別處調用頁面上js代碼實現全屏的功能被攔截了,而若是是頁面上定義的元素,直接點擊就沒問題。io
因而就想到了傳統的切換全屏方法function
Screen.fullScreen = !Screen.FullScreen;
再發布出來,點擊按鈕,沒反應
再點擊場景中任何位置,切換成全屏了……
切換回來卻是點擊一下就行
因而又試
最後在按鈕上加EventTrigger,添加PointerDown的事件,在這個事件的方法中寫上面的切換代碼
一樣的代碼:
Screen.fullScreen = !Screen.FullScreen;
此次只點擊一次就好了記錄備忘