如果要实现Unity与浏览器的数据交互一般都会采用两种方式

方法一:

Application.ExternalCall("SayHello","helloworld");

这种方式可以在Unity中调用伊尔迷案中的JS函数

方法二:

SendMessage("Main Camera", "FunctionName", “参数”);

这种方式可以在网页中用JS代码往Unity中传递参数,调用对应的函数

但我在平时使用的过程中法闲了一个问题就是SendMessage只接受一个参数,这就非常尴尬了,万一我们预留的函数需要多个参数呢,这个问题困惑了我好几天

不论你怎么尝试着传递参数都会出现这种错误

我试过这样

SendMessage("Main Camera", "SetWenDu", 33,22);

还有这样

SendMessage("Main Camera", "SetWenDu", “33”+“22”);

但时候都会出现这种错误

直到我有一天看到了一个国外的博客

尊重版权我把原链接粘贴上

http://www.feedingedge.co.uk/blog/2011/03/09/browser-to-unity3d-communication-and-back-again/

我发现Unity的SendMessage本来就只支持一个参数,难怪我一直不成功

博客中使用了一种自定义分隔符的方式实现了多个参数的传递

unity中:

void inboundfunction(string indata)
{

string[] words = indata.Split('~');

data1 = words[0];
moredata2 = words[1];
anotherpiece3 = words[2];

}

JS中:

<script type=”text/javascript”>
<!–
function callbackunity(arg)
{
alert(arg);
var unity = unityObject.getObjectById(“unityPlayer”);
unity.SendMessage(“Rezzer”, “inboundfunction”, “item1~item2~item3”);
}
–>
</script>

这种方法把多个参数合并成一个参数在C#中使用split吧参数分割开这样就巧妙地实现了多个参数的传递

Unity 发布的 WebGL 使用SendMessage传递多个参数的更多相关文章

  1. Unity 发布的 WenGL 使用SendMessage传递多个参数

    如果要实现Unity与浏览器的数据交互一般都会采用两种方式 方法一: Application.ExternalCall("SayHello","helloworld&qu ...

  2. unity发布的WebGL部署到IIS

    一.创建WebGL代码 在win7下,Unity3D中发布WebGL,然后部署到IIS,只要代码是对,关键是添加mime类型 二.为网站添加mime类型 .json text/json .unity3 ...

  3. Unity发布WebGL时如何修改默认的载入进度条

    Unity发布WebGL版本后,需要去除Unity的Logo,首先关闭Splash Image去除Made with Unity启动画面(在File->Build Settings->Pl ...

  4. Unity 发布到IOS,Android的各种坑

    Unity 发布到IOS的注意事项1.开发环境MAC环境:Xcode环境 7.2.1Unity环境:Unity5.32.基本说明首先,我说一下,这是我在对Unity发布到IOS的实际使用中,总结出来的 ...

  5. 在Android Studio上测试运行,Unity发布成Android包的环境搭建步骤

      我用的是unity5.4.3版本,jdk是1.8.0_131版本,Android-SDK是r24.4.1版本,Android-NDK是r13b版本,作者是刚开始写博客,希望对在unity摸索的人有 ...

  6. Unity发布至IOS的流程(踩坑记录)

    这篇文章主要用于记录本人亲身经历过的Unity发布到IOS平台所遇到的所有坑(其实也就是一些自己并不明白的强制设定),以便于后续再有类似需求时少走些弯路. 我的环境: Unity 5.2.2 个人版( ...

  7. WebGl 多缓冲区传递颜色和坐标(矩形)

    效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  8. WebGl 一个缓冲区传递颜色和坐标(矩形)

    效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

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

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

随机推荐

  1. bootstrap图标字体不出来问题的解决办法

    @font-face { font-family: 'Glyphicons Halflings'; src: url('/Scripts/bootstrap/fonts/glyphicons-half ...

  2. 【OGG】OGG基础知识整理

    [OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...

  3. VMware中Mac OS中显示共享文件夹的方法

    在finder 偏好设置里的通用标签下,勾选  “已连接的服务器”

  4. web前端CSS2学习2017.6.17

    CSS---表现层,修饰和表现html文档,为了解决结构层和表现层分离的问题. 通过CSS极大的提高了工作效率,方便工作人员维护和管理CSS:层叠样式表,目前用的最广泛的css版本为css2,最新版本 ...

  5. Hibernate错误:Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update

    报错:Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execu ...

  6. dashDB - Introduction and DB Tools

    dashDB - Introduction dashDB is a database that is designed for performance and scale. It offers sea ...

  7. SQL Server分页查询方法整理

    SQL Server数据库分页查询一直是SQL Server的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID.YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页 ...

  8. Oracle索引批量重置笔记

    ---单个索引重置语句 alter index indexname  rebuild; ---查询数据索引对象语句 select *  from user_indexes; ------将数据库的索引 ...

  9. 将 MacOS 默认的 PHP 版本升级到 7.*

    上接:在macOS Sierra 10.12搭建PHP开发环境 设置 brew brew tap homebrew/dupes brew tap homebrew/versions brew tap ...

  10. Centos7架设NMP服务器笔记

    安装centos7.3 1.从mirrors.163.com下载7.3 2.准备虚拟机vitualbox,网络我使用的桥接到无线网卡,直接连我到路由器,IP自动分配(本来想搞静态IP的,搞了好久没成功 ...