JSBInding+Bridge.NET:把C#编译为Js
编译步骤:
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/bridgeProj.js,对应于自己游戏的所有逻辑代码
- BridgeProj/Bridge/output/csw.js,对应于 csw.cs
3. 要在 Js工程中起效,必须回到 Js工程中点击菜单 JSB | Update JavaScript
安装Bridge.Collections扩展:
1. 在 Bridge工程中,点击菜单:工具 -> NuGet包管理器 -> 程序包管理控制台
2. 运行命令:PM> Install-Package Bridge.Collections
3. 运行后,会看到工程中增加了 Bridge.Collections 引用
4. 安装完成后,可使用 Queue,Stack,HashSet
参考链接:
https://github.com/bridgedotnet/Frameworks/issues/11
https://www.nuget.org/packages/Bridge.Collections
有一点值得注意,用文本形式打开 BridgeProj.csproj,有这么一句:
<Compile Include="Logic\**\*.cs" />
意思是,工程会自动把 Logic 下(包括子目录)的源代码全部加进来。
这样的好处是,如果在 Cs 工程中加新的逻辑代码,会自动被添加进 Bridge工程中,而不用手动一个一个添加。就是Bridge工程可能要重新load一下,可以这样操作
更多细节可以参考:JSBinding+Bridge.Net:框架代码与逻辑代码的关系
返回:JSBinding+Bridge.NET:Unity游戏热更新方案
JSBInding+Bridge.NET:把C#编译为Js的更多相关文章
- JSBinding+Bridge.Net:框架代码与逻辑代码的关系
在JSB+Bridge工程中你可以同时维护Cs版本和Js版本的游戏. 框架代码:简称framework,表示那些不进行热更的代码.注意,这包括你自己写的代码,也包括引用的Dll,比如UnityEngi ...
- JSBinding+Bridge.NET限制
限制: 框架代码不可以访问逻辑代码.这是最基本的. 框架里的函数 f 带数组参数时,逻辑代码调用 f 的话,数组只能做为输入,也就是说,如果在框架函数 f 里修改了数组的内容,那么逻辑代码是无法取得新 ...
- JSBinding+Bridge.NET:Unity游戏热更新方案
老版本链接如下:http://www.cnblogs.com/answerwinner/p/4469021.html 新用户不要再使用老版本了. 新版本 JSBinding 将抛弃 SharpKit ...
- JSBinding+Bridge.NET:生成绑定(导出)
将框架代码导出到 JavaScript.就可以在 JavaScript 中调用 框架代码 的功能. 注意,这个功能是在 Js工程中做的,Cs工程没有这回事. 如何导出? 1. 将需要导出的类添加到 J ...
- JSBinding+Bridge:逻辑代码中操作二进制数据
以这2个函数为例 class File { public static byte[] ReadAllBytes(string path); public static void WriteAllByt ...
- JSBinding+Bridge.NET:Inspector拖变量支持
之前的文档说了,JSB的设计是不允许gameObject上挂逻辑脚本的.原因很简单,在Js工程中根本就不存在C#形式的逻辑脚本,如果在Cs工程中挂上了,到了Js工程这边,直接Missing. 实际在使 ...
- Emscripten编译环境搭建--将C和C++编译成JS
Emscripten编译环境搭建--将C和C++编译成JS 需求:linux环境下用js执行c.c++文件,使用emscirpten编译器 目标:搭建好Emscripten环境 环境:Ubuntu16 ...
- Atitit.dart语言的特性 编译时js语言大总结
Atitit.dart语言的特性 编译时js语言大总结 1. 原型环境1 1.1. Dart可以编译js3 2. 第二个期待的理由是Dart的语言特性,没有什么特别特性好像,类似java c#一小时 ...
- 热重载 预编译 编译器 JS引擎 作用域
热重载就是页面每次改动,不需要手动去刷新,可自动刷新.保持vuex的状态. JS之预编译 JavaScript的预编译 编译器 JS引擎 作用域三者之间的关系 建议你先去看看你不知道的JavaScri ...
随机推荐
- git pull错误
1. Pull is not possible because you have unmerged files. 症状:pull的时候 $ git pull Pull is not possible ...
- Java 验证码工具类
package com.wuyu.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import ...
- 【汇总】Android 常用方法整理
1.解决ActionBar OverFlow按钮不显示.(在oncreate中调用即可) private void setOverflowShowingAlways() { try { ViewCon ...
- java集合类的学习(一)
为何要用集合类:可以储存不同类型的数据,可以进行动态的删除和修改,不用考虑数组越界的问题. 软件开发常用的集合类:Vector,ArrayList,Stack,HashMap,Hashtable. 3 ...
- Luogu 3396 权值分块
官方题解:这是一道论文题.集训队论文<根号算法——不只是分块>. 首先,题目要我们求的东西,就是下面的代码: for(i=k;i<=n;i+=p) ans+=value[i]; 即: ...
- mybatis配置文件查询参数的传递
通常来说,参数传递可以使用#与$进行编写,但是使用#的效率更高,使用$方式,查看日志更方便些,尤其是当执行的sql语句非常麻烦的时候. 1) 接口 形式 以下方式 [传递参数是一个实体] public ...
- eclipse新建文件模板默认charset=ISO-8859-1解决
在安装目录下找到eclipse.ini用记事本打开,添加一行-Dfile.encoding=utf-8,就ok了. 这是应为模板中使用了encoding这个变量
- [转]Linux 的多线程编程的高效开发经验
Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别.不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断.本文中我们 ...
- linux sed和awk的区别
awkawk是一种程序语言,对文档资料的处理具有很强的功能.awk擅长从格式化报文或从一个大的文本文件中抽取数据.awk的命令格式为:awk [-F filed-separator] “command ...
- 数据分析:中国高校更名历史 Python
上周领了新任务,做国内高校改名历史的统计,这个挺有意思,以下是我任务完成过程,和大家分享. 一. 数据收集 数据需求:目前已有高校校名,各高校改名历史记录 高校校名数据来源:尝试从高校排名网站(iPI ...