将 UnityEngine 的代码导出到 JavaScript.就可以在 JavaScript 中使用 Unity 的功能. 如何导出? 将需要导出的类添加到 JSBindingSetting.classes 数组中,然后运行菜单 [JSB | Generate JS and CS Bindings] 即可. 建议是把 UnityEngine.dll 的所有类全部写进去,一次性全部导出,以后就不需要再逐个添加了. 不过以后真正运用到项目中,可能需要各自维护,因为每个项目的需求可能不同. 以后会考…
目前Unity的代码更新方案有很多,主要以lua为主. JSBinding + SharpKit 是一种新的技术,他做了两件事情: JSBinding将C#导出到 JavaScript (引擎是 Mozilla SpiderMonkey) 中,让你可以用 JavaScript 写代码,就好像 lua 一样 SharpKit(sharpkit.net)将C#代码翻译成 JavaScript 代码. 因此,他可以让你使用C#编译代码,之后一键转换成 JavaScript 代码并正常运行.如果你的项目…
首先,现在的方案是游戏启动就加载全部的 JavaScript 代码. 先看下 StreamingAssets/JavaScript/ 文件夹下的目录结构:…
注意: 1 Firefox 的版本用41 2 我发现调试很难用的,现在我都用打印 步骤参考图:…
以 NGUI 的 UIEventListener 为例: 有一个类: using SharpKit.JavaScript; using UnityEngine; using System.Collections; [JsType(JsMode.Clr,"../StreamingAssets/JavaScript/SharpKitGenerated/z_temp/test0610.javascript")] public class test0610 : MonoBehaviour {…
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; // 支…
最后修改:2015年07月29日 2016年2月25日 2DPlatformer 是 Unity3D 的一个官方 Demo.本文将介绍使用 JSBinging + SharpKit 转换 2DPlatformer 的过程. 本文并不详细介绍每个步骤的细节.因为他们将在其他文章里做详细介绍. 准备工作:首先准备好 JSBinding 的工程,正确导入 JSBinding 插件. 2DPlatformer 是Unity3D的第一个示例代码,一共不到10M.麻雀虽小,五脏俱全.牵扯到很多东西,比如 p…
轻轻一点菜单:[JSB | Compile Cs to Js] 主要产出:StreamingAssets/JavaScript/SharpkitGeneratedFiles.javascript,你的所有逻辑代码都在这里 其他产出: Temp/AllInvocations.txt:记录所有逻辑代码对框架代码的调用 (1) Temp/AllInvocationsWithLocation.txt:同上,但同时记录每个调用的文件名和行号 (2) Temp/YieldReturnTypes.txt:记录…
首先,其实不是热更新,而是更新. 热更新意思是不重启游戏,但只要你脚本里有存储数据,就不可能.所以只能叫更新. 但大家都这么说,所以... 先举个具体的例子: 如果是C#:在 Prefab 的 GameObject 上绑定 C# 脚本,这个 Prefab 会被打包成 AssetBundle,然后通过 AssetBundle.Load 加载到游戏中. 因为C#本身不可能更新,所以就无法修改. JSB的方案是,将这些 C# 的 MonoBehaviour 都替换成 JSComponent_xxx.这…