unity 浏览器插件【embedded browser(原zfbrowser)】简单教程,使unity支持web h5页面,附软件下载链接

这篇具有很好参考价值的文章主要介绍了unity 浏览器插件【embedded browser(原zfbrowser)】简单教程,使unity支持web h5页面,附软件下载链接。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 简介

这是个在项目中使用了很久的浏览器插件。
很负责任的说这是在pc平台上最好用的浏览器插件
商业付费价格78刀,相比3d webview等插件动不动就178、368的价格就显得很良心
最新版下载链接(请勿商用)

1.1 功能概述

基本和普通浏览器无异

  1. 支持调试台Devtools功能
  2. 支持evil js
  3. 支持h5 原生视频播放
  4. 支持控制台捕获
  5. 支持unity to js, js to unity通信
  6. 支持鼠标键盘事件
  7. 支持各种浏览器操作,包括前进后退刷新打印复制剪切粘贴等
  8. 支持多窗口
  9. 支持vr输入
    还有很多功能等你慢慢发现
1.2 安装

与其他unity插件相同,下载解压后双击即可完成安装。安装完成后project窗口会多出个ZFbrowser文件夹。demo目录下有测试场景。
unity 加载外部网页,# unity3D 使用、技巧笔记,unity,前端,游戏引擎

二 使用教程

2.1 准备工作
  1. 在场景中添加ui canvas 和 RawImage物体
    unity 加载外部网页,# unity3D 使用、技巧笔记,unity,前端,游戏引擎
  2. 在RawImage物体中添加以下组件,这几个组件分别是:浏览器主题组件Browser,虚拟鼠标交互组件 Pointer UIGUI,箭头显示组件 Cursor Renderer OS
    unity 加载外部网页,# unity3D 使用、技巧笔记,unity,前端,游戏引擎
    3 再新建个c#脚本BrowserMessager 作为组件放到该物体上
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ZenFulcrum.EmbeddedBrowser;

[RequireComponent(typeof(Browser))]
public class BrowserMessager : MonoBehaviour
{
    private Browser browser;

    void Start()
    {
    	// 获取当前物体上的Browser组件
        browser = GetComponent<Browser>();
    }
}
2.2 加载外部网址
  1. 在刚才新建的脚本中添加加载外部网址方法“browser.LoadURL()”
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ZenFulcrum.EmbeddedBrowser;

[RequireComponent(typeof(Browser))]
public class BrowserMessager : MonoBehaviour
{
    private Browser browser;

    void Start()
    {
        browser = GetComponent<Browser>();
        // 跳转到百度首页
		browser.LoadURL("www.baidu.com",true);
    }
}

直接运行即可看到百度首页

2.2 直接运行html代码

调用“browser.LoadHTML()”方法

browser.LoadHTML("<html><head><style>p{color: red;}</style></head><body><title>这是个html代码</title><p>html内容</p></body></html>");
2.3 加载unity本地html文件

加载本地文件有三个情况:

  1. 加载unity工程里的网页资源
  2. 加载assetbundle打包的网页资源
  3. 加载本地硬盘的网页资源
2.3.1 加载unity工程里的网页资源

1 首先在Assets平级目录中建立BrowserAssets文件夹。注意是平级,不是下级!
unity 加载外部网页,# unity3D 使用、技巧笔记,unity,前端,游戏引擎
2 将创建好的html页面和其他资源扔进去
unity 加载外部网页,# unity3D 使用、技巧笔记,unity,前端,游戏引擎
3 在browser组件的url 设置中改为 localGame://demo/1.html
localGame会自动定位到BrowserAssets目录。 demo是我建的文件夹。1.html就是要运行的网页

注意:
如果网页里面有同文件夹的资源调用别忘了去掉"/"。 例如下面代码,如果是外部网页资源应该加上斜杠, 。如果是本地资源就应该去掉斜杠

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
    <img id = "img" src="图.png" alt=""> 
</body>
</html>
2.3.2 加载assetbundle打包的网页资源
2.3.3 加载本地硬盘的网页资源

加载本地硬盘的网页资源还用我说了吗,要么起个服务直接给网址,要么使用system.io找到文件地址

三 unty与html通信

网页js与unity通信,至少需要分别实现html和c#两个脚本

3.1 通信:HTML => UNITY

html代码可以按上文所述放置在本地或服务器上。c#脚本作为组件添加到某物体上

html代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
	// 创建一个按钮,绑定方法"jsevent"
    <button type="button" onclick="jsevent()">点击按钮通信给unity</button>  
    <script type="text/javascript">
        function jsevent() {
				 console.log("传参");
		}
    </script>
</body>
</html>
c#代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ZenFulcrum.EmbeddedBrowser;
using ZenFulcrum.EmbeddedBrowser.VR;

[RequireComponent(typeof(Browser))]
public class BrowserMessager : MonoBehaviour
{
    private Browser browser;
    void Start()
    {
        browser = GetComponent<Browser>();
        //监听html 中的jsevent方法
        browser.RegisterFunction("jsevent", (JSONNode jv) =>
        {
        	// js多参数输入
            Debug.Log(jv[0].Value);
        });
    }
}

点击通信按钮
unity 加载外部网页,# unity3D 使用、技巧笔记,unity,前端,游戏引擎
unity这边就捕获到了信息
unity 加载外部网页,# unity3D 使用、技巧笔记,unity,前端,游戏引擎
捕获信息也可以在html那边直接用console.log打印出来,然后在c#中调用

browser.onConsoleMessage += (string s1, string s2) => {
    Debug.Log("js console info:" + s1 + s2);
};

直接捕获控制台数据。不过为了区分数据需要添加数据组合规则较麻烦。

3.2 UNITY => HTML

js代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
    	//被unity调用的函数
		function unityevent(item) {
			console.log("unity参数:",item);
		}
    </script>
</body>
</html>

c#代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ZenFulcrum.EmbeddedBrowser;
using ZenFulcrum.EmbeddedBrowser.VR;

[RequireComponent(typeof(Browser))]
public class BrowserMessager : MonoBehaviour
{
    private Browser browser;
    void Start()
    {
        browser = GetComponent<Browser>();
    }
    private void Update()
    {
        if (Input.GetKey(KeyCode.Space))
        {
            browser.CallFunction("unityevent", "unity to js").Done();
        }
    }
}

执行程序号,按下space按键,即可看到js代码中unityevent所打印的参数了
unity 加载外部网页,# unity3D 使用、技巧笔记,unity,前端,游戏引擎文章来源地址https://www.toymoban.com/news/detail-754414.html

四 其他api

直接执行js代码
browser.EvalJS("console.warning(\"this is jscode\")");
监听浏览器控制台输出
browser.onConsoleMessage += (string s1, string s2) => {
    Debug.Log(s1 + "====" + s2);
};
直接跳转到网址
browser.LoadURL("www.baidu.com",true);
直接执行html代码
browser.LoadHTML("<html><head><style>p{color: red;}</style></head><body><title>123123</title><p>html代码</p></body></html>");
网页完成加载时触发的事件
        browser.onLoad += (JSONNode jn) => {
            Debug.Log("浏览器完成加载");
        };

到了这里,关于unity 浏览器插件【embedded browser(原zfbrowser)】简单教程,使unity支持web h5页面,附软件下载链接的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 什么是浏览器缓存(browser caching)?如何使用HTTP头来控制缓存?

    前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个

    2024年02月09日
    浏览(48)
  • Burp Suite 自带浏览器Burp‘s Browser(Chromium)沙盒sandbox问题的解决

    Burp Suite启动自带浏览器Burp’s Browser(Chromium)的时候,弹出does not support running without sandbox出错框。 解决方法,操作如下: Project options --Misc– Burp’s Browser -- Allow Burp’s browser to run without sandbox,勾选这个选项。

    2024年02月13日
    浏览(42)
  • 查看edge浏览器插件的安装位置并将插件安装到别的浏览器

     C:Users zhang AppDataLocalMicrosoftEdgeUser DataDefaultExtensions    这是我的目录,把中间的的替换成你的电脑用户名就可以了 你也可以先输入目录的部分名称,下拉找对应的目录  将插件导出,导入到别的浏览器 以第一个插件  扩展管理器  为例,进入下一级子文件,找到插件

    2024年02月10日
    浏览(57)
  • 浏览器插件下载以及安装----以chrome浏览器中安装Xpath插件进行演示

    初学Spider, 需要Xpath插件, 可是电脑没有自带的插件, 需要自己下载安装, 当然不会, 就来CSDN取经, 看了好多博客, 终于整理出来一套简单实用且全面的插件下载安装说明书! 说明书! 本文章以 chrome浏览器 为例, 因为常用的: 360浏览器, Edge浏览器, IE浏览器等, 它们的插件安装包和以

    2024年02月15日
    浏览(88)
  • edge浏览器插件打包安装到谷歌浏览器上

    没有安装插件的浏览器不能算的上是一个浏览器,众所周知的原因谷歌无法打开,所有也就无法安装谷歌应用商店的插件,但是Edge浏览器是可以安装访问插件,又因为egde浏览器用的是谷歌的内核,所有大部分的Edge浏览器插件在谷歌上一样是可以使用的。下面就来看一下怎么

    2024年02月13日
    浏览(78)
  • 爬虫常用浏览器插件

    EditThisCookie 是一个 Cookie 管理器,可以很方便的添加,删除,编辑,搜索,锁定和屏蔽。 可以将登录后的 Cookies 先保存到本地,借助 cookielib 库,直接爬取登录后的数据。 Web Scraper Web Scraper 是一款免费的、适用于任何人,包含没有任何编程基础的爬虫工具。 操作简单,只需要

    2024年02月10日
    浏览(47)
  • google浏览器插件开发

    在开发Chrome插件时,以下几个文件的作用如下: manifest.json :这是Chrome插件的清单文件,用于配置插件的基本信息、权限、页面跳转等。其中包括插件的名称、版本号、图标、后台脚本、浏览器动作等信息。 background.js :这是Chrome插件的后台脚本文件,用于处理插件的后台逻

    2024年04月28日
    浏览(39)
  • selenium 调用本地浏览器插件

    本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删! selenium 使用本地浏览器插件 环境 win10 Python3.9 selenium 4.10 查看chrome配置文件路径 地址栏输入 ​

    2024年02月09日
    浏览(71)
  • 渗透测试常用浏览器插件汇总

    这个插件可以自动探测当前网站所属的国家、城市,解析IP地址以及开放的服务和端口,包括但不限于FTP、DNS、SSH或者其他服务等,属被动信息搜集中的一种。 这个插件可用于常见编码/解码、POST/Cookies数据提交、SQL/XSS/LFI/XXE漏洞测试、自定义Referer/User-Agent等,是一款不可多得

    2024年02月05日
    浏览(57)
  • 如何开发一个chrome浏览器插件

    目录 前言 chrome扩展程序 文件结构 manifest.json html和css js 加载插件 调试 总结 当前,chrome浏览器早已成为占据最大的市场份额,也是综合体验最好的浏览器,开发人员使用的浏览器基本都以它为主。 我在使用chrome的过程中,积累增加了很多书签,最多的时候接近上千个,后续

    2024年02月08日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包