赞
踩
本文所用到的插件,是修改自一个日本人keijiro的代码。他的源码地址为:https://github.com/keijiro/unity-webview-integration
为更易于使用,本插件是将其源码由javascript改为C#代码,并做了一些修改和优化,并打包成unitypackage包,可直接导入项目中使用,方便快捷!
本插件支持Unity与网页javascript进行双向交互
插件下载地址http://download.csdn.net/detail/home_498/9577122
下面是该插件的使用方法:
1.导入插件包
右键你的工程,选择Import Package-Custom Package...,选择unity-webview.unitypackage
此时会显示你要导入的文件,如果不需要看我写的测试用例,则可以不勾选下面的WebViewExample,然后点击Import可导入
2.场景中引入
2D场景用的时候,只需在Canvas新建一个Empty(Create Empty),并绑定WebMediator.cs,调整这个Empty的位置和大小,就可以改变网页的显示位置和大小。
3D场景使用的时候,不需要调整位置和大小,在代码中调用SetMargin进行定位
3.代码调用
声明一个类变量,并将上面创建的empty对象绑定至该变量
public WebMediator WebView;
WebView.Show("http://blog.csdn.net/home_498/article/details/51918041");
3D场景使用的时候,再调用下面这句进行定位即可,传入的参数是网页到屏幕边框的距离
WebView.SetMargin(10, 10, 10, 10);
4.Unity调用javascript方法
如下可直接从Unity调用javascript方法,第一个参数为javascript方法名,第二个参数为传入javascript方法的参数,为字符串类型
WebMediator.CallJavascript("javascriptMethod", "这里可以传入一个字符串参数");
网页要发送消息到Unity,网页需要引入unity.js(在文章开头的下载地址打包下载),调用unity.callback即可发送消息到Unity,第一个参数为消息名,第二个参数为消息内容(传入一个json,到C#端直接以Hashtable形式取出)
网页代码
- <html>
- <head>
- <meta http-equiv=Content-Type content="text/html;charset=utf-8">
- <script type="text/javascript" src="unity.js"></script>
- <script type="text/javascript">
- function pushMsg(method){
- var val = document.getElementById("testInput").value;
- unity.callback(method, {'msg':val});
- }
-
- function javascriptMethod(args){
- alert(args);
- }
- </script>
- </head>
- <body>
- <input id="testInput" />
- <input type="button" value="提交A" οnclick="pushMsg('A')" />
- <input type="button" value="提交B" οnclick="pushMsg('B')"/>
- </body>
- </html>
C#代码
- private void ProcessMessages() {
- while (true) {
- // Poll a message or break.
- var message = WebMediator.PollMessage();
- if (message == null) break;
- Debug.Log(message.path);
- switch (message.path)
- {
- case "A":
- A.text = message.args ["msg"].ToString();
- break;
- case "B":
- B.text = message.args ["msg"].ToString();
- break;
- default:
- break;
- }
- }
- }
-
- void Update() {
- if (WebMediator.IsVisible()) {
- ProcessMessages();
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。