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. [UE4]Cast to 转换成纯函数

    这样就变成不需要执行线了,可以直接得到转换结果

  2. javaScript read blob

    http://www.cnblogs.com/wangfajing/p/7202139.html?utm_source=itdadao&utm_medium=referral

  3. Linux性能优化 第二章 性能工具:系统CPU

    2.1 CPU性能统计信息 2.1.1运行队列统计 在Linux中,一个进程要么是可运行的,要么是阻塞的(正在等待一个事件的完成).阻塞进程可能在等待从I/O设备来的数据,或者是系统调用的结果如果一个 ...

  4. 基于tcp的下载文件,以及struct模块的应用。

    一 基于TCP的下载 客户端: from socket import * import os def main(): tcp_socket = socket(AF_INET, SOCK_STREAM) ...

  5. 【Eclipse】Eclipse 安装 SVN 插件的三种方法

    最近使用Eclipse时,修改代码总是看不到变化,不知道那个文件修改了,想起了当时开发C++的时候,有相关的插件,于是乎就网搜了下,果然有Eclipse的SVN配置. 接下来,我采用了第二种方式,一起 ...

  6. tornado 和 djanjo 转义处理对比

    tornado tornado默认是转义所有字符,比较安全,但有时候我们的确需要把字符当做html来解析处理,因此我们需要做些处理. 所有的模板输出都已经通过 tornado.escape.xhtml ...

  7. Java 文件类 File

    1.File 类 1.File 类 1.1.构造方法 文件的 抽象路径名(操作系统无关) 构造方法 格式 说明 File(String filename) 把文件路径名字符串转换为“抽象路径名”,用来 ...

  8. openstack provider self-service network subnet 创建

  9. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'test'

    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'test' 报错原因是:MySQL数据库没有 ...

  10. 55.1拓展之边框border-width属性。

    效果地址:https://scrimba.com/c/cQpDKkSN HTML code: <div class="border1 borders"></div ...