您好,登錄后才能下訂單哦!
很簡單,在場景中添加一個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的事件,在這個事件的方法中寫上面的切換代碼
同樣的代碼:
Screen.fullScreen = !Screen.FullScreen;
這次只點(diǎn)擊一次就行了
記錄備忘
免責(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)容。