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 ...
随机推荐
- python实现的视频下载工具you-get,支持多个国内外主流视频平台
RT,you-get 是一个视频离线下载工具, https://github.com/soimort/you-get 另一个同类工具 youtube-dl 也是python 实现,虽然名为 youtu ...
- easyUI类取嵌套的类型(pastJson结合)
user类: @Entity@Table(name="c_user")public class User { @Id @GeneratedValue(strategy=G ...
- C++Promise函数
Promise内部会建立一个shared state是用来放一个相应的类型的值或是一个异常,并可被future object 取其数据当线程结果 promise是在形成成果后才将结果放进shared ...
- Json 讲解
JSON详解 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如何使用JSON 在.NET中如何使用JSON 总结 JSON的全称是”JavaScript Object Notation”, ...
- TE9手机微信场景
HTML <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8& ...
- (转载)android炫酷实用的开源框架(UI框架)
可以实现一些场常用炫酷效果,包含android-lockpattern(图案密码解锁).Titanic(可以显示水位上升下降的TextView).Pull-to-Refresh.Rentals-And ...
- Kruskal算法
1.基本思想:设无向连通网为G=(V, E),令G的最小生成树为T=(U, TE),其初态为U=V,TE={ },然后,按照边的权值由小到大的顺序,考察G的边集E中的各条边.若被考察的边的两个顶点属于 ...
- 初学SQL常用到的一些指令
一.库 查看有哪些库:show databases; 进入某个库:use 库名; 新增库:create database atm; (atm为库名) 删除库:drop database if exis ...
- typeof和instanceof
JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的: typeof typeof 是一个一元运算,放在一个运算数之前 ...
- 日志:using the Connector/J connection property 'autoReconnect=true' to avoid this problem
com.mysql.jdbc.CommunicationsException: The last packet successfully received from the server was581 ...