Unity3D之Web Player与unity的互相传值交互
Web Player是Unity3d自带的一个Web端插件。它可以作为普通的网站来用也可以与Unity3d进行交互。
现在先讲unity传向Web player的方法。非常简单只有一句代码: Application.ExternalCall();注意这个方法只用于Web Player。
调用一个包含在网页中的函数(只用于Web Player)。
调用包含在网页中名为functionNameJavaScript函数,并传递给定的参数。支持原始的数据类型(string, int, float, char)和这些类型的数字。如何其他的对象被转化为字符串(使用ToString方法)并作为字符串传递。
这个函数调用时不会被阻塞,即ExternalCall立即返回的功能而不必等待被完成。传递的参数数量是可变的。
// Calls MyFunction1 in web page with no arguments
// 调用网页上的MyFunction1并不使用参数。
Application.ExternalCall ("MyFunction1");// Calls MyFunction2 in web page with a string
//调用网页上的MyFunction2并使用字符串参数。
Application.ExternalCall ("MyFunction2", "Hello from Unity!");// Calls MyFunction3 in web page with several arguments of different types
//调用网页上的MyFunction3并使用几个不同类型的参数。
Application.ExternalCall ("MyFunction3", "one", 2, 3.0);
被调用的在HTML中的函数只需要使用标准的语法即可,例如:
<script language="JavaScript" type="text/javascript"> <!-- // Using the above call from Unity, this will receive // 使用来自Unity的调用,这将接受 // "Hello from Unity!" as the argument. // "Hello from Unity!" 做为参数 function MyFunction2( arg ){alert( arg );} --> </script>
这个方法的理论已经讲完了,下面进行实例讲解:
这是我在unity3D里写的一段代码。实现功能是点击鼠标左键就会执行传向Web Player的方法。
下面是在Web Player中打开的代码。只写了一个方法(黄色线框中的方法)。这个方法用来接收unity传入的一个参数并且把这个参数显示在弹出的警告框中。
下面就是运行结果了:当点击鼠标左键时就会弹出这个框,并且把Unity里的数据传过来。这是在IE浏览器里看到的,有些浏览器会自动屏蔽弹框等等。大家最好找个适合开发测试的浏览器。
上面讲的是Unity如何向Web Player进行传输数据。下面讲一下Web Player如何向Unity传输。
首先我们要知道Web Player是unity打包出来的一个网页。打包出来的包里有两个文件,一个是网页文件.html,另个是unity文件。
例如我们刚才那个网页,如下:
当我们打开这个网页文件后在里面添加一句代码就可以传值给Unity.这个方法是:u.getUnity().SendMessage();
具体方法如下图:
下面详细解释一下,图中的var u = new UnityObject2(config);这句是打包出来的网页自带的语句。而黄色线框内的东西是我们自己写的方法。这句功能是当这个网页运行时候就会触发大括号里面的方法。而大括号里面首先有个警告框方法(上面已经讲过),另个方法就是传值给Unity的方法。具体参数类型是String:Plane是unity中必须存在而且可以找到的物体。SS是绑定给这个Plane物体的方法。而我是WEB Player这句是我们要发送给unity的消息。
通过以上的描述可以知道unity里必须要有东西去接收和显示这个传来的信息。那么在unity里如下:首先要存在一个Plane,而且有个脚本绑定在上面,还需要给一个Text来显示传来的信息。
再看这个脚本里的方法;方法名必须和WEB palyer里的那个一样即为SS,要有个参数而且是String类型的。
这样一切都准备完毕了。运行一下:
首先是弹出警告框:
然后点击之后就会看到,消息已经传到了unity的text里面:
这样就把Unity和web player之间的传输功能实现了。
Unity3D之Web Player与unity的互相传值交互相关推荐
- 【Unity3D自学记录】failed to update unity web player解决办法。
相信很多人都遇到过"failed to update unity web player" 这个解决的方法只针对开发者哦~ 需要改生成的html 对照着修改一下~就可以了. < ...
- unity 程序win7在进程里运行_Win7系统中unity web player是什么程序
unity web player是什么程序,可不可以卸载?下面教程给大家详细讲解"unity web player"程序.以及可以不可以卸载!一起去看看吧! 如果你安装好Win7没 ...
- “failed to update unity web player”失败的问题:
我们使用浏览器加载unity 3d 文件,不同的网络可能会产生failed to update unity web player的错误,详细信息为: unity web player update ...
- unity 程序win7在进程里运行_win7系统中出现的unity web player是什么程序?
当我们使用不纯净的win7系统安装包重新安装win7系统的时候,就会有一些不知名的程序运行在系统中,最近就有一位小伙伴问小编,说他的电脑有一个叫做"Unity Web Player" ...
- Offline Web Player installers(unity web play 离线版 webplayer)
原文地址:https://forum.unity.com/threads/offline-web-player-installers.367715/ With the recent announcem ...
- 适用于64位Windows的Unity 3.4 Web Player
Update Dec. 4 2012: The unsupported 64-bit Windows web player is not currently in working state in U ...
- 【Unity3D学习记录#2】Android调用Unity界面 与 信息交互
[Unity3D学习记录#2]Android调用Unity界面 与 信息交互 Android 调用 Unity Unity项目构建 Android项目构建 Android 与 Unity 的信息交互 ...
- Web Player TcPlayer
Web Player TcPlayer 详细请参考:https://cloud.tencent.com/document/product/881/44876 概述 tcplayer lite主要用于在 ...
- Unity 开发总结之VLC Player for Unity插件的使用
Unity项目开发过程中, 视频播放这块是避免不了的重要组成部分,网上也有很多资料做了详细的介绍,但基本都是基于Unity的MovieTexture对象,即要求视频源必须是导入的本地视频文件,如果视频 ...
最新文章
- fsum函数测试以及分析
- 『并发包入坑指北』之阻塞队列
- Linux下用iptables做端口映射
- JAVA中的通配符的符号_Linux下的通配符和特殊符号用法详解
- IDA无法反编译 and 提示错误
- wxWidgets:wxDataObject类用法
- sqlserver游标概念与实例
- 1057 数零壹 (20 分)
- web中hasmoreelements_Web开发模式【Mode I 和Mode II的介绍、应用案例】
- C#委托和事件的应用Observer模式实例
- SharePoint Windows Workflow Foundation
- 旷视发布3D感知全栈解决方案!现在,AI+3D只差杀手级应用了
- 如何把握软件产品的质量
- apiDoc之api接口文档生成
- 如何选择机器人的电机
- 解锁system分区
- iOS开发:Protocol协议以及委托代理传值
- redis如何设置密码
- 敬业签手机便签App怎么解绑微信互联设置?
- 苹果拍照怎么显示地点和时间_2020年康复理疗师证报名时间怎么报考考试地点...
热门文章
- xlnx qemu 参数记录 (机器自动生成)
- delta并联机器人/delta机械手工作空间模型相关程序源码
- 六轴机器人直角坐标系建立_详解|六轴机器人,SCARA机器人,直角坐标机器人和 Delta机器人...
- java获取环境变量路径_Java读取系统环境变量的方法
- java 界面编程_JAVA图形界面编程
- 建筑中人行为模拟研究现状和展望(2015)
- python启动应用程序 mac_如何使用Python在Mac OS X上的前台启动应用程序?
- 虚拟机中通过docker创建docker run -itd -p 8080:8080 -p 8088:8088 镜像ID /bin/bash创建后无法访问
- 基于椭球 磁补偿 matlab,基于椭球曲面拟合的三维磁罗盘误差补偿算法
- 无线传输最远可以传输距离_无线电源传输的梦想可能很快成为现实