将 UnityEngine 的代码导出到 JavaScript。就可以在 JavaScript 中使用 Unity 的功能。
如何导出?
将需要导出的类添加到 JSBindingSetting.classes 数组中,然后运行菜单 【JSB | Generate JS and CS Bindings】 即可。
建议是把 UnityEngine.dll 的所有类全部写进去,一次性全部导出,以后就不需要再逐个添加了。
不过以后真正运用到项目中,可能需要各自维护,因为每个项目的需求可能不同。
以后会考虑再增加反射调用,如果说游戏发布了,又需要用到之前没有导出的类,就会有用。
(这边是举例子 只添加一小部分类)
// // JSBindingSettings.cs // public static Type[] classes = new Type[] { typeof(System.Diagnostics.Stopwatch), typeof(Vector2), typeof(Vector3), typeof(GameObject), typeof(UnityEngine.Object), typeof(UnityEngine.MonoBehaviour), typeof(UnityEngine.Behaviour), typeof(UnityEngine.Component), typeof(Debug), typeof(Input), // ......... }
点击如下菜单可以自动生成JS绑定:
生成完成后,会生成2部分代码。
一部分是 C# 代码,在文件夹 Assets/JSBinding/Generated/ 中(是由 JSBindingSettings.csGeneratedDir 变量指定的。可自行修改)
如下所示
另一部分是JS代码,这部分代码都在这个文件里面,(接近1M):
StreamingAssets/JavaScript/GeneratedFiles.javascript
当 JS 引擎启动时会加载这个文件。