JSBinding+Bridge.NET限制】的更多相关文章

编译步骤: 1. 用 VS 2015 打开 BridgeProj/BridgeProj.sln ,编译 2. 将生成 BridgeProj/Bridge/output/bridge.js,对应于 Bridge.dll BridgeProj/Bridge/output/bridge.collections.js,对应于 Bridge.Collections.dll (需要安装Bridge.Collections扩展才会有此项,往下看) BridgeProj/Bridge/output/bridge…
将框架代码导出到 JavaScript.就可以在 JavaScript 中调用 框架代码 的功能. 注意,这个功能是在 Js工程中做的,Cs工程没有这回事. 如何导出? 1. 将需要导出的类添加到 JSBindingSetting.classes 数组中, 2. 运行菜单 [JSB | Gen Bindings] 即可. 建议是把 UnityEngine.dll 的所有类全部写进去,一次性全部导出,以后就不需要再逐个添加了. 不过以后真正运用到项目中,可能需要各自维护,因为每个项目的需求可能不同…
在JSB+Bridge工程中你可以同时维护Cs版本和Js版本的游戏. 框架代码:简称framework,表示那些不进行热更的代码.注意,这包括你自己写的代码,也包括引用的Dll,比如UnityEngine.dll,或者是其他第3方Dll,都算是框架代码. 逻辑代码:简称logic,表示那些可进行热更的代码.逻辑代码将会变成Js代码. 1. 在Cs工程中,将代码明确划分为框架和逻辑.框架代码放在 Assets/Scripts/GameFramework(有源代码,或者Dll也放这个目录下吧),逻辑…
限制: 框架代码不可以访问逻辑代码.这是最基本的. 框架里的函数 f 带数组参数时,逻辑代码调用 f 的话,数组只能做为输入,也就是说,如果在框架函数 f 里修改了数组的内容,那么逻辑代码是无法取得新内容的.这是为了性能考虑. js<->cs 交互时,数组只支持一维 纯逻辑对象不可以传递到框架代码中.例如 List<> 对象. 反射相关代码,部分支持.具体看你咋用,有时候是可以的,Bridge 在 Js 模拟了一套类型系统.可以看编译成 Js 时有没有报错,如果没报错,应该就可以的…
老版本链接如下:http://www.cnblogs.com/answerwinner/p/4469021.html 新用户不要再使用老版本了. 新版本 JSBinding 将抛弃 SharpKit 转而使用 Bridge.NET(老版本仍然维护). 理由是 1. 把 C# 编译成 Js 后,Bridge 几乎100%确定转换后可运行. Bridge 在编译时不允许引用外部 Dll(System.dll也不行).允许使用的 C# Api 都是 Bridge 已严格测试过的.一般来说,编译能过,就…
以这2个函数为例 class File { public static byte[] ReadAllBytes(string path); public static void WriteAllBytes(string path, byte[] data); } 如果不做特殊处理,ReadAllBytes在返回数据给Js时,是一个字节一个字节拷贝给Js的数组.这样性能是极差的.并且,大多数情况下,逻辑代码中不需要直接修改2进制数据,而只是拿着而已. 因此,不要直接使用上面的2个函数. 以下是一个…
之前的文档说了,JSB的设计是不允许gameObject上挂逻辑脚本的.原因很简单,在Js工程中根本就不存在C#形式的逻辑脚本,如果在Cs工程中挂上了,到了Js工程这边,直接Missing. 实际在使用的过程发现如果Prefab无法静态“关联”逻辑脚本,则必须在某个地方动态地确定需要挂什么脚本上去.这样子的确是有点麻烦. 首先要记住,ScriptAgent只是用于“逻辑脚本”,也就是需要更新的脚本.对于框架脚本,是直接挂就可以的. 解决如何对一个gameObject静态指定一个逻辑脚本. gam…
1) 序列化不支持 public List<T>,其余都支持(JSBinding+Bridge无此功能) 2015年11月5日 补充:序列化只处理 Field.目前发现 AnimationCurve 可以在编辑器里编辑,不过他没有 Field,全是 Property,所以不支持,正在想办法 public int v; // 支持 public GameObject go; // 支持 public Transform trans; // 支持 public int[] arrInt; // 支…
目前Unity的代码更新方案有很多,主要以lua为主. JSBinding + SharpKit 是一种新的技术,他做了两件事情: JSBinding将C#导出到 JavaScript (引擎是 Mozilla SpiderMonkey) 中,让你可以用 JavaScript 写代码,就好像 lua 一样 SharpKit(sharpkit.net)将C#代码翻译成 JavaScript 代码. 因此,他可以让你使用C#编译代码,之后一键转换成 JavaScript 代码并正常运行.如果你的项目…
一.概述 桥接模式:将两个原本不相关的类结合在一起,然后利用两个类中的方法和属性,输出一份新的结果. 二.案例 1.模拟毛笔(转) 需求:现在需要准备三种粗细(大中小),并且有五种颜色的比 如果使用蜡笔,我们需要准备3*5=15支蜡笔,也就是说必须准备15个具体的蜡笔类.而如果使用毛笔的话,只需要3种型号的毛笔,外加5个颜料盒,用3+5=8个类就可以实现15支蜡笔的功能. 实际上,蜡笔和毛笔的关键一个区别就在于笔和颜色是否能够分离.即将抽象化(Abstraction)与实现化(Implement…