Unity5.3 使用Awesomium插件内嵌网页
来源:互联网 发布:杭州趣得网络 编辑:程序博客网 时间:2024/05/21 17:44
使用Awesomium插件
爬坑指南
1.使用的为awesomium_unity1.7.4.2win_full插件;
2.此插件最大不爽之处在于非要发布后才能看到网页,谨记;
3.主要写脚本控制WebUIComponent即可;
4.拖预制体的时候会有莫名奇妙的错误,请自行体会;
插件导入后,新建一个空物体,
添加组件后
好了,离成功不远了,首先是Common下的Source就是要显示的网址。
看见组件中的Rendering下的Visible没?现在没勾,这个要勾上显示用的。
如果只是显示的话,现在不要任何脚本,发布一个PC端的,运行后就能看到网页了。
下面介绍WebUIComponent的属性
Width,Height 宽和高;
Target 渲染目标,1、None 2、GUI用OnGUI 3、Render 用网格渲染器(要把WebUIComponent添加到Plane或Quad等3D物体上);
Achor 锚点;
IsTransparent 是否有透明通道;
FilterMode 渲染模式
Visible 可见
下面说说代码吧,直接上干货
首先是继承WebUIScript,重写了方法(这里只是简单重写了主要的)
using UnityEngine;using System.Collections;using UnityEngine.UI;using Awesomium.Core;using Awesomium.Unity;using Awesomium.Core.Data;using UnityEngine.EventSystems;public class WebRoomInfoHandler : WebUIScript{ Ray ray; RaycastHit hit; private WebSession session; #region//重写 protected override void Awake() { if (Application.isEditor) return; if (!webUI) return; // Get or create an in-memory WebSession. if (session == null) { session = WebCore.CreateWebSession(new WebPreferences() { SmoothScrolling = true }); UnityEngine.Debug.Log("Created In-Memory Session"); } if (session.GetDataSource("media") == null) { // Create and add a ResourceDataSource. This will be used to load assets // from the resources assembly (AwesomiumSampleResources) available with this sample. ResourceDataSource dataSource = new ResourceDataSource( ResourceType.Embedded, typeof(AwesomiumSampleResources.Loader).Assembly); session.AddDataSource("media", dataSource); UnityEngine.Debug.Log("Added DataSource"); } // Assign the WebSession to the WebUIComponent. webUI.WebSession = session; } // Use this for initialization protected override void Start() { if (Application.isEditor) return; // Check if there's a WebUIComponent available // in this GameObject. if (!webUI) return; // Set a handler for the DocumentReady event. webUI.DocumentReady += OnDocumentReady; } protected override void OnGUI() { if (Input.GetMouseButtonDown(0)) { OnClickRoom(); } } #endregion #region//事件 private void OnDocumentReady(object sender, UrlEventArgs e) { JSObject webUIManager = webUI.CreateGlobalJavascriptObject("webUIManager"); if (webUIManager == null) return; webUIManager.Bind("closeWebUI", false, CloseWebUIHandler);// } #endregion
下面才是控制的重点;和上面在一个脚本哦。
#region//方法 void OnClickRoom() { ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 100f)) { if (hit.collider.name.Equals("Cube")) { Debug.Log("点击房间"); BtnOnClick(); } } } void CloseWebUIHandler(object sender, JavascriptMethodEventArgs e) { webUI.Visible = false; } public void BtnOnClick() { webUI.Source = "https://www.baidu.com".ToUri(); webUI.Visible = true; } #endregion
在场景中新建一个Cube,这样点击就会显示网页了,如果你想关闭这个网页,不好意思自己慢慢研究吧。如过你会写网页,注意一下webUIManager,在网页里写上closeWebUI方法,相信你会实现与unity交互的。
效果图如下
错误之处欢迎之处,哈哈!Demo下载地址:
链接:http://pan.baidu.com/s/1i4U07kh 密码:70wl
- Unity5.3 使用Awesomium插件内嵌网页
- 【工具】内嵌浏览器awesomium(待完善)
- 四肢天气的插件内嵌网页
- 网页内嵌编辑器ueditor的使用
- Unity5.x插件EasyRoad V3使用(一)
- UGUI提高<七> 循环滚动插件和内嵌网页插件
- 使用iframe内嵌网页的时候,如何做到内嵌网页的高度自适应
- UnityWebCore 插件使用学习 unity工程内实现网页的现实
- 网页内嵌字体
- html内嵌网页
- 内嵌网页
- 内嵌网页
- 内嵌网页QwebView
- Unity集成内嵌网页插件-支持Android和IOS
- awesomium简介
- 使用插件技术,开发网页3D游戏
- Javascript控制网页内Quicktime插件音视频播放
- Unity5.6.x 上使用 插件 SE Natural Bloom Dirty Lens
- GreenDao3.0简单使用
- nyoj58_最少步数
- 打印菱形星号
- 有序链表转二叉平衡搜索树(BST)
- SQL Server跨库查询
- Unity5.3 使用Awesomium插件内嵌网页
- 初探HTML
- PullToRefresh初体验
- C# 通过URL得到图片的问题
- 第14周oj-3
- C++ Primer 课后练习9.45
- RMAN备份FORMAT格式中%的含义
- 如何使用OkHttp post传递文字和图片
- HDR中的Tone Mapping(色调映射)