JSBinding+Bridge.NET:生成绑定(导出)
将框架代码导出到 JavaScript。就可以在 JavaScript 中调用 框架代码 的功能。
注意,这个功能是在 Js工程中做的,Cs工程没有这回事。
如何导出?
1. 将需要导出的类添加到 JSBindingSetting.classes 数组中,
2. 运行菜单 【JSB | Gen Bindings】 即可。
建议是把 UnityEngine.dll 的所有类全部写进去,一次性全部导出,以后就不需要再逐个添加了。
不过以后真正运用到项目中,可能需要各自维护,因为每个项目的需求可能不同。
3. 生成完成后,会生成3部分代码。
1) C# 代码,在文件夹 Assets\Scripts\JSBinding\G\ 下
2) 另一部分是JS代码,这部分代码都在这个文件里面:
Assets\StreamingAssets\JavaScript\Gen1.javascript
当 JS 引擎启动时会加载这个文件。
Gen1负责调用框架代码的功能。在Js代码中,所有需要调用到框架代码的,都必须经过Gen1。
3) 生成了一个 csw.cs文件到 Bridge工程中。关于这一点,可以参考:JSBinding+Bridge.Net:框架代码与逻辑代码的关系
4. Gen1是如何与C#通信的呢?
打开Gen1可以看到,所有函数的实现都是
return CS.Call(...);
CS.Call 是啥?CS.Call实际上对应的是C#代码 JSMgr.CSEntry 函数。在 JSMgr.InitJSEngine 函数中,把 JSMgr.CSEntry 函数传给了C++。然后在 C++中创建了Js中的CS对象以及函数Call,并把CS.Call 和 JSMgr.CSEntry绑定起来。所以在Js中调用CS.Call 实际上就会走到 C#中的 JSMgr.CSEntry 函数去。
返回:JSBinding+Bridge.NET:Unity游戏热更新方案
JSBinding+Bridge.NET:生成绑定(导出)的更多相关文章
- JSBinding+Bridge.NET:Unity游戏热更新方案
老版本链接如下:http://www.cnblogs.com/answerwinner/p/4469021.html 新用户不要再使用老版本了. 新版本 JSBinding 将抛弃 SharpKit ...
- JSBinding+Bridge.Net:框架代码与逻辑代码的关系
在JSB+Bridge工程中你可以同时维护Cs版本和Js版本的游戏. 框架代码:简称framework,表示那些不进行热更的代码.注意,这包括你自己写的代码,也包括引用的Dll,比如UnityEngi ...
- JSBInding+Bridge.NET:把C#编译为Js
编译步骤: 1. 用 VS 2015 打开 BridgeProj/BridgeProj.sln ,编译 2. 将生成 BridgeProj/Bridge/output/bridge.js,对应于 Br ...
- JSBinding+Bridge.NET限制
限制: 框架代码不可以访问逻辑代码.这是最基本的. 框架里的函数 f 带数组参数时,逻辑代码调用 f 的话,数组只能做为输入,也就是说,如果在框架函数 f 里修改了数组的内容,那么逻辑代码是无法取得新 ...
- JSBinding+Bridge:逻辑代码中操作二进制数据
以这2个函数为例 class File { public static byte[] ReadAllBytes(string path); public static void WriteAllByt ...
- 用python生成一个导出数据库的bat脚本文件
# 环境: python3.x def getExportDbSql(db, index): # 获取导出一个数据库实例的sql语句 sql = 'mysqldump -u%s -p%s -h%s - ...
- 自动生成并导出word文档
今天很荣幸又破解一现实难题:自动生成并导出word文档 先看页面效果: word效果: 代码: 先搭建struts2项目 创建action,并在struts.xml完成注册 <?xml vers ...
- JSBinding+Bridge.NET:Inspector拖变量支持
之前的文档说了,JSB的设计是不允许gameObject上挂逻辑脚本的.原因很简单,在Js工程中根本就不存在C#形式的逻辑脚本,如果在Cs工程中挂上了,到了Js工程这边,直接Missing. 实际在使 ...
- asp.net 生成 excel导出保存时, 解决迅雷下载aspx页面问题
网络上搜索,一大堆废话,以下为简单的导出生成Excel代码: string excelFile = Server.MapPath("~/SB/UpFile/20151104111008/Bo ...
随机推荐
- 如何通过JDBC访问数据库
Java数据库连接(JDBC)用与在Java程序中实现数据库操作功能,它提供了执行SQL语句.访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口,java.sql包中包含了JDBC操作数据库 ...
- IIS7+windows 64位配置注意事项
问题和解决办法 1 如果网站为Asp:再asp中注意启用父路径 2 操作必须使用一个可更新的查询:给用户iis_iusrs 一个完全控制的权限 3 Windows(64位IIS)未在本地计算机上 ...
- USBD_STATUS
USBD_STATUS 该USBD_STATUS数据类型为USB请求定义USB状态值. 的typedef LONG USBD_STATUS; USB状态值的最显著4位被如下表中所定义. 值 ...
- PYTHON 链接 Oracle
一. cx_Oracle Python 连接Oracle 数据库,需要使用cx_Oracle 包. 该包的下载地址:http://cx-Oracle.sourceforge.net/ 下载的时候,注 ...
- Linux下PHP的完全卸载
如果想把PHP彻底的卸载干净,直接用yum的remove命令是不行的,而需要查看有多少rpm包,然后按照依赖顺序逐一卸载,在网上查了好多,都是通过 "rpm -qa | grep php& ...
- HTML5的form表单属性
form:HTML4中,表单内的从属元素必须书写在<form></form>之内,但是在HTML5中,表单的从属元素可以处于页面的任何位置,然后为其添加form属性,属性值为f ...
- [转] js深拷贝和浅拷贝
一.数组的深浅拷贝 在使用JavaScript对数组进行操作的时候,我们经常需要将数组进行备份,事实证明如果只是简单的将它赋予其他变量,那么我们只要更改其中的任何一个,然后其他的也会跟着改变,这就导致 ...
- CUDA ---共享存储器
原文地址:http://www.cnblogs.com/1024incn/p/4605502.html shared memory在之前的博文有些介绍,这部分会专门讲解其内容.在global Memo ...
- Struts2框架下表单数据的流向以及映射关系
本例框架很简单:默认页面为用户登录界面login.jsp,提交后由action类LoginAction.java来判断成功或失败,登录结果分别由success.jsp和failure.jsp呈现. 一 ...
- ZendStudio13 PHP调试环境快速配置
1.百度ZendStudio13,汉化,破解,注册: 2.安装国产Apache+MySql一键安装环境phpStudy,方便快速 http://www.phpstudy.net/a.php/208. ...