溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Unity發(fā)布的WebGL頁面應(yīng)用實(shí)現(xiàn)全屏/非全屏切換

發(fā)布時間:2020-02-14 11:10:36 來源:網(wǎng)絡(luò) 閱讀:3418 作者:lreach 欄目:游戲開發(fā)

很簡單,在場景中添加一個UGUI按鈕,實(shí)現(xiàn)點(diǎn)擊就切換全屏/非全屏狀態(tài)

其實(shí)發(fā)布出webgl之后,頁面上場景窗口右下會有一個按鈕,就是切換全屏的,但是想用代碼在程序里實(shí)現(xiàn)

首先看頁面上那個按鈕的js腳本是怎么寫的

<div class="fullscreen" onclick="gameInstance.SetFullscreen(1)"></div>

注意里面的代碼就一行:

gameInstance.SetFullscreen(1);

也就是在Unity中調(diào)用外面的js方法
所以先在js中寫個切換全屏的方法

function FullScrSwitch(para){
    gameInstance.SetFullscreen(para);
}

para是參數(shù),為1時全屏,為0時退出全屏

在Unity的按鈕點(diǎn)擊事件方法中寫

private bool isFullSrc=false;
private void onClick()
{
    int para=isFullSrc?"1":"0";
    Application.ExternalCall("FullScrSwitch",para);
}

按理說這樣一調(diào)用,就像調(diào)用其它的js方法一樣,應(yīng)該可用
但是,點(diǎn)擊按鈕沒有切換全屏

頁面上按F12打開控制臺,發(fā)現(xiàn)報錯,就是不能通過這種調(diào)用實(shí)現(xiàn)全屏,查了一下,這個還不是Unity的問題,是瀏覽器出于安全什么的考慮,這種從別處調(diào)用頁面上js代碼實(shí)現(xiàn)全屏的功能被攔截了,而如果是頁面上定義的元素,直接點(diǎn)擊就沒問題。

于是就想到了傳統(tǒng)的切換全屏方法

Screen.fullScreen = !Screen.FullScreen;

再發(fā)布出來,點(diǎn)擊按鈕,沒反應(yīng)
再點(diǎn)擊場景中任何位置,切換成全屏了……

切換回來倒是點(diǎn)擊一下就行

于是又試
最后在按鈕上加EventTrigger,添加PointerDown的事件,在這個事件的方法中寫上面的切換代碼
Unity發(fā)布的WebGL頁面應(yīng)用實(shí)現(xiàn)全屏/非全屏切換
同樣的代碼:

Screen.fullScreen = !Screen.FullScreen;

這次只點(diǎn)擊一次就行了
記錄備忘

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI