Unity发布的WebGL页面应用实现全屏/非全屏切换

很简单,在场景中添加一个UGUI按钮,实现点击就切换全屏/非全屏状态

其实发布出webgl之后,页面上场景窗口右下会有一个按钮,就是切换全屏的,但是想用代码在程序里实现

首先看页面上那个按钮的js脚本是怎么写的

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

注意里面的代码就一行:

gameInstance.SetFullscreen(1);

也就是在Unity中调用外面的js方法
所以先在js中写个切换全屏的方法

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

para是参数,为1时全屏,为0时退出全屏

在Unity的按钮点击事件方法中写

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

按理说这样一调用,就像调用其它的js方法一样,应该可用
但是,点击按钮没有切换全屏

页面上按F12打开控制台,发现报错,就是不能通过这种调用实现全屏,查了一下,这个还不是Unity的问题,是浏览器出于安全什么的考虑,这种从别处调用页面上js代码实现全屏的功能被拦截了,而如果是页面上定义的元素,直接点击就没问题。

于是就想到了传统的切换全屏方法

Screen.fullScreen = !Screen.FullScreen;

再发布出来,点击按钮,没反应
再点击场景中任何位置,切换成全屏了……

切换回来倒是点击一下就行

于是又试
最后在按钮上加EventTrigger,添加PointerDown的事件,在这个事件的方法中写上面的切换代码

同样的代码:

Screen.fullScreen = !Screen.FullScreen;

这次只点击一次就行了
记录备忘

原文地址:https://blog.51cto.com/shuxiayeshou/2386140

时间: 2024-10-16 14:20:55

Unity发布的WebGL页面应用实现全屏/非全屏切换的相关文章

Unity 发布的 WebGL 使用SendMessage传递多个参数

如果要实现Unity与浏览器的数据交互一般都会采用两种方式 方法一: Application.ExternalCall("SayHello","helloworld"); 这种方式可以在Unity中调用伊尔迷案中的JS函数 方法二: SendMessage("Main Camera", "FunctionName", "参数"); 这种方式可以在网页中用JS代码往Unity中传递参数,调用对应的函数 但我在

unity发布exe全屏方法

首先 将该代码挂在NGUI的UIroot上或者场景的物体上 using UnityEngine; using System.Collections; public class example : MonoBehaviour { public void Awake() { Screen.SetResolution(1024, 768, true);//自己想要的分辨率,比如1024*768,true表示全屏 Screen.fullScreen = true; } } 然后发布,设置如下 unity

【Unity】开发WebGL内存概念详解和遇到的问题

自加入unity WebGL平台以来,Unity的开发团队就一直致力于优化WebGL的内存消耗.我们已经在Unity使用手册上有对于WebGL内存管理的详尽分析,甚至在Unite Europe 2015与Unite Boston 2015两届大会上,也有专题对其进行深入的讲解.然而,这方面的内容依旧是用户讨论的热门话题,因此我们意识到应当分享更多.希望本文能回答一些被频繁咨询的问题. Unity WebGL与其它平台有何不同? 一些用户已经熟悉了部分内存有所限制的的平台.而对于其它如桌面和Web

Unity 发布到IOS,Android的各种坑

Unity 发布到IOS的注意事项1.开发环境MAC环境:Xcode环境 7.2.1Unity环境:Unity5.32.基本说明首先,我说一下,这是我在对Unity发布到IOS的实际使用中,总结出来的经验!如果你想一次就发布成功,如果你想少走弯路,请仔细看我的说明.因为坑比较多!由于Unity发布到IOS,是以Xcode工程的形式发布到MAC中,所以,在发布的时候需要注意以下几点:1. 发布的工程,需要以真机进行调试(我发布的时候,选择发布unity到模拟器版本,发布后无法用模拟器运行)2. U

【HTML5】页面点击按钮添加一行 删除一行 全选 反选 全不选

页面点击按钮添加一行    删除一行   全选   反选  全不选 页面效果图如下 html页面代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="bootstrap-3.3.7-dist/css/bootstrap.css" /> <script type=&qu

Unity发布安卓Splash Image适应手机、平板

问题描述: Unity发布安卓应用时,遇到只能添加一张SplashImage而需要适配手机及平板不同分辨率处理 解决方法: http://blog.csdn.net/aiyan1111111/article/details/51144617

UCanCode发布升级E-Form++可视化源码组件库2015全新版 (V23.01)!

2015年4月. 成都 UCanCode发布升级E-Form++可视化源码组件库2015全新版 (V23.01)! --- 全面性能提升,UCanCode有史以来最强大的版本发布! E-Form++可视化源码组件库企业版本2015最新版发布!(超过50万行VC++源代码,历时14年开发,价值数百万,100% VC++ Source Code提供)!("The only Flow/Diagramming Kits that provides full source code of componen

shift + 空格 快捷键 使输入法 在全角和半角直接切换。。 但是全角输入一个 空格 ,会造成jsp页面 无法正常解析。。比如 无法获得参数。。

shift + 空格 快捷键 使输入法 在全角和半角直接切换.. 但是全角输入一个 空格 ,会造成jsp页面 无法正常解析....比如 无法获得参数.. 如 <form action="/mycenter/topicRelated" name="pageForm" method="post"> <input type="hidden" value="${pageBean.currentPage }&

jQuery学习(五)——使用JQ完成复选框的全选和全不选

1.在系统后台进行人员管理时,进行批量删除,使用jq完成全选和全不选 步骤分析: 第一步:引入jquery文件 第二步:书写页面加载函数 第三步:为上面的复选框绑定单击事件 第四步:将下面所有的复选框的选中状态设置成跟上面的一致! 2.具体代码实现: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>使用jQuery完成复选框的全选和全不