unity WegGL 调用js
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的更多相关文章
- Unity——Js和Unity互相调用
Unity项目可以打包成WebGl,打包后的项目文件: Build中是打包后的Js代码: Index.html是web项目的入口,里面可以调整web的自适应,也可以拿去嵌套: TemplateData ...
- 【问题】Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数
[问题]Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数. [解决]直接对变量加引号,如: <button onclick="deleteProduct('@ ...
- iOS开发--OC调用JS篇
OC调用JS篇 其中相对应的html部分如下: <html> <header> <meta http-equiv="Content-Type" con ...
- js调用php和php调用js的方法举例
js调用php和php调用js的方法举例1 JS方式调用PHP文件并取得php中的值 举一个简单的例子来说明: 如在页面a.html中用下面这句调用: <script type="te ...
- ActiveX(三)ActiveX 调用 Js
在上一篇随笔: ActiveX(二)Js 监听 ActiveX中的事件 中,已经可以实现 Js 监听 ActiveX中的事件,至此.Js 和 ActiveX 已经可以实现双向通讯了.但是.这样的实现 ...
- 配合 APP 调用 JS 的一次尝试
项目初衷 最初的场景是用户在对购物车的操作中,由于用户对购物车的每次操作(包括选择,调整数量)都需要计算商品的促销和分组的情况,而这段逻辑的计算都需要调用后端的接口,那么瓶颈来了: 请求时间长--一次 ...
- JS调用OC方法并传值,OC调用JS方法并传值////////////////////////zz
iOS开发-基于原生JS与OC方法互相调用并传值(附HTML代码) 最近项目里面有有个商品活动界面,要与web端传值,将用户在网页点击的商品id 传给客户端,也就是js交互,其实再说明白一点 ...
- c# winform 调用js
1. 在winform中加入一个 WebBrowser 控件: 2. webBrowser控件加载html文件,html文件中包含了js代码, 代码如下(必须在 InitializeComponent ...
- a 标签中调用js的几种方法 文章摘自他人
我们常用的在a标签中有点击事件:1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题 ...
随机推荐
- [UE4]Cast to转换数据类型
可以转换纯函数,这样就可以不用加执行线了.
- webpack、npm、nginx常用命令
webpack命令:webpack --watch 监听变动并自动打包,简写-wwebpack -p --progress --color 压缩混淆脚本webpack -d 生成映射文件,告知那些模 ...
- 2018北美部分CS项目学费
yearly cost from official website USC 城里 24credit about 49k + cost of room&food BU 城里 NEU 65k 城里 ...
- adversarial example研究
Paper: Practical Black-Box Attacks against Machine Learning 一.介绍 概况:Ian Goodfellow大神研究如何在不知道model内部结 ...
- (转)SQL知识_SQL Case when 的使用方法
原文地址:http://www.cnblogs.com/yazdao/archive/2009/12/09/1620482.html Case具有两种格式.简单Case函数和Case搜索函数. --简 ...
- Solr——Windows下部署Solr6.6.0至Tomcat8.5.28(二)
1,core理解 如果把solr理解为个数据库的话,那么core可以理解为数据库中的一张表,其实就是数据集合 在写本片文章之前看到网上很多教程都说需要找到solr.xml来配置core的信息,特此说明 ...
- 可恶的 0xc0000005异常
昨天快下班的时候自己写的代码突然跑出了这个异常,,搞的我特别的无语,因为昨天女朋友要过来了,给我出现了这么一个bug,心里很不爽,果断低下班了,另外一个原因就是公司其他人都跑了,每次基本都是我一个人最 ...
- 【Jmeter自学】JMeter的安装(一)
==================================================================================================== ...
- 【Java】边框总结
[Java]边框总结 Table of Contents 1 例子代码与结果 2 javax.swing.border 3 BorderFactory 4 LineBorder 5 MatteBord ...
- 20165205 2017-2018-2《Java程序设计》结对编程一 第二周总结
20165205 2017-2018-2<Java程序设计>结对编程一 第二周总结 设计思路 编写主类Arithmetic4 编写ArithmeticFunc类来实现计算,其中包括:加.减 ...