test.jslib文件,必须放到Assets/Plugins下,这里是:Assets/Plugins/WebGL

mergeInto(LibraryManager.library, {

    Hello: function () {
window.alert("Hello, world!");
}, HelloString: function (str) {
//这里使用Pointer_stringify方法转换unity传递过来的字符串
window.alert(Pointer_stringify(str));
}, PrintFloatArray: function (array, size) {
for(var i = 0; i < size; i++){
//遍历float数组使用HEAPF32,更多类型:HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64
console.log(HEAPF32[(array >> 2) + i]);
}
}, AddNumbers: function (x, y) {
//这里unity传递过来int类型数字,不需要转换
return x + y;
}, //返回一个字符串到unity
StringReturnValueFunction: function () {
var returnStr = "bla"; var bufferSize = lengthBytesUTF8(returnStr) + 1;
var buffer = _malloc(bufferSize);
stringToUTF8(returnStr, buffer, bufferSize); return buffer;
}, BindWebGLTexture: function (texture) {
GLctx.bindTexture(GLctx.TEXTURE_2D, GL.textures[texture]);
}, });

callJSTest.cs文件,绑定到任意GameObject中。

using System.Runtime.InteropServices;
using UnityEngine; public class callJSTest : MonoBehaviour { [DllImport("__Internal")]
private static extern void Hello(); [DllImport("__Internal")]
private static extern void HelloString(string str); [DllImport("__Internal")]
private static extern void PrintFloatArray(float[] array, int size); [DllImport("__Internal")]
private static extern int AddNumbers(int x, int y); [DllImport("__Internal")]
private static extern string StringReturnValueFunction(); [DllImport("__Internal")]
private static extern void BindWebGLTexture(int texture); void Start() {
Hello(); HelloString("This is a string."); float[] myArray = new float[];
PrintFloatArray(myArray, myArray.Length); int result = AddNumbers(, );
Debug.Log(result); Debug.Log(StringReturnValueFunction()); var texture = new Texture2D(, , TextureFormat.ARGB32, false);
BindWebGLTexture(texture.GetNativeTextureID());
}
}

源码地址:https://github.com/kingBook/unityWebGLCallJS

unity WegGL 调用js的更多相关文章

  1. Unity——Js和Unity互相调用

    Unity项目可以打包成WebGl,打包后的项目文件: Build中是打包后的Js代码: Index.html是web项目的入口,里面可以调整web的自适应,也可以拿去嵌套: TemplateData ...

  2. 【问题】Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数

    [问题]Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数. [解决]直接对变量加引号,如: <button onclick="deleteProduct('@ ...

  3. iOS开发--OC调用JS篇

    OC调用JS篇 其中相对应的html部分如下: <html> <header> <meta http-equiv="Content-Type" con ...

  4. js调用php和php调用js的方法举例

    js调用php和php调用js的方法举例1 JS方式调用PHP文件并取得php中的值 举一个简单的例子来说明: 如在页面a.html中用下面这句调用: <script type="te ...

  5. ActiveX(三)ActiveX 调用 Js

    在上一篇随笔: ActiveX(二)Js 监听 ActiveX中的事件  中,已经可以实现 Js 监听 ActiveX中的事件,至此.Js 和 ActiveX 已经可以实现双向通讯了.但是.这样的实现 ...

  6. 配合 APP 调用 JS 的一次尝试

    项目初衷 最初的场景是用户在对购物车的操作中,由于用户对购物车的每次操作(包括选择,调整数量)都需要计算商品的促销和分组的情况,而这段逻辑的计算都需要调用后端的接口,那么瓶颈来了: 请求时间长--一次 ...

  7. JS调用OC方法并传值,OC调用JS方法并传值////////////////////////zz

     iOS开发-基于原生JS与OC方法互相调用并传值(附HTML代码)     最近项目里面有有个商品活动界面,要与web端传值,将用户在网页点击的商品id 传给客户端,也就是js交互,其实再说明白一点 ...

  8. c# winform 调用js

    1. 在winform中加入一个 WebBrowser 控件: 2. webBrowser控件加载html文件,html文件中包含了js代码, 代码如下(必须在 InitializeComponent ...

  9. a 标签中调用js的几种方法 文章摘自他人

    我们常用的在a标签中有点击事件:1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题 ...

随机推荐

  1. html地址--待更新

    11.学习笔记: 视频直播技术:ijkplayer技术:jni技术: https://www.cnblogs.com/renhui/category/1011048.html: IM:环信, xmpp ...

  2. Linux双网卡绑定

    Linux双网卡绑定 作者:Eric 微信:loveoracle11g eth0和eth1绑定为bond0 [root@rac-node1 ~]# cat /etc/sysconfig/network ...

  3. BCGcontrolBar(八) Ribbon图标变换

    点击前 点击后 CBCGPRibbonButton *pRibbonBtn=NULL; pRibbonBtn=DYNAMIC_DOWNCAST(CBCGPRibbonButton,m_pFrame-& ...

  4. 关于easyUI异步获取数据格式问题

    后台向easyUI一般写String类型的数据 成功之后的回调函数中:应将数据转为json格式    $.parsonJSON success:function(result){            ...

  5. Spark操作实战

    1. local模式 $SPARK_HOME/bin/spark-shell --master local import org.apache.log4j.{Level,Logger} // 导入ja ...

  6. Delphi XE5中的新增内容

    Delphi XE5中的新增内容 Delphi XE5是所有Delphi开发人员的必须备升级,并且是来自Embarcadero的获奖的.多设备应用开发解决方案的最新版本.使用Delphi XE5的新特 ...

  7. 深度学习 + OpenCV,Python实现实时视频目标检测

    使用 OpenCV 和 Python 对实时视频流进行深度学习目标检测是非常简单的,我们只需要组合一些合适的代码,接入实时视频,随后加入原有的目标检测功能. 在本文中我们将学习如何扩展原有的目标检测项 ...

  8. HTTP请求返回值所代表的含义

    一些常见的状态码为: 200 - 服务器成功返回网页(表示请求成功) 404 - 请求的网页不存在(可能是网络的问题,也可能是网页没办法访问不代表网页不存在) 503 - 服务器超时(服务器故障) 下 ...

  9. 「2017 山东一轮集训 Day6」子序列(矩阵快速幂)

    /* 找出了一个dp式子 是否能够倍增优化 我推的矩阵不太一样 是 1 0 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 2 求得逆矩阵大概就是 1 0 0 ...

  10. Java捕获异常的问题

    ---恢复内容开始--- 在Java编译过程中,有时候会出现输入未按照规定输入的情况,此时需要警告用户输入错误,这就会是程序运行过程中出现异常.异常就是可预测但是又没办法消除的一种错误.所以在编写过程 ...