JSBinding + SharpKit / JavaScript 加载流程

首先,现在的方案是游戏启动就加载全部的 JavaScript 代码。

先看下 StreamingAssets/JavaScript/ 文件夹下的目录结构:

aaarticlea/png;base64,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*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" alt="" />

  • debug/:跟 JavaScript 调试有关的 JavaScript 代码,只有当开启调试的时候才需要加载。
  • Manual/:也是用于手写 JavaScript 代码,跟 JSImp/ 有一些区别。Manual 里最有的代表性的是 Vector2 和 Vector3,这2个对象是手写实现的,在 JavaScript 中跑只会使用 JavaScript 版本的 Vector2 和 Vector3
  • SharpKit/:从 SharpKit 拿过来的一些 JavaScript 库文件。可以实现类继承等
  • GeneratedFiles.javascript:是由菜单 【JSB | Generate JS and CS Bindings】 产生的。用于实现将 C# 函数绑定到 JavaScript 上。比如说要在 JavaScript 中使用 GameObject 就要使用这里面的文件。这一点和 LUA 不一样,LUA 产生绑定时只有产生 C# 代码,我们是2边都有。
  • SharpKitGeneratedFiles.javascript:由 SharpKit 工程编译而来的 JavaScript 代码都会放在这个文件里。
  • includes.javascript:JavaScript 代码总入口

目前 JavaScript 加载只有一个入口,StreamingAsset/JavaScript/includes.javascript。

查看 _JSEngine.prefab 上的配置:

aaarticlea/png;base64,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" alt="" />

includes.javascript 里面通过 CS.require 包含了所有的 JavaScript 文件:

(此内容可能不是最新的)

 /*
* Author: Qiucw
* DO NOT change order
*/ // -1)
//--------------------------------------------------
function jsb_ReplaceOrPushJsType(jst) {
//if (!JsTypes) { JsTypes = []; }
var found = false;
for (var i = ; i < JsTypes.length; i++) {
if (JsTypes[i].fullname == jst.fullname) {
JsTypes[i] = jst;
found = true;
break;
}
}
if (!found) {
JsTypes.push(jst);
}
} // 0) SharpKit library
//--------------------------------------------------
CS.require("SharpKit/jsclr");
CS.require("SharpKit/clrlibrary"); // 1) Files generated by JSBinding
// may overwrite some classes in step 0)
//--------------------------------------------------
CS.require("GeneratedFiles"); // 2) Manually written js
// will overwrite some classes in step 1)
//--------------------------------------------------
CS.require("Manual/UnityEngine_Vector3");
CS.require("Manual/UnityEngine_Vector2");
CS.require("Manual/UnityEngine_MonoBehaviour");
CS.require("Manual/UnityEngine_WaitForSeconds");
CS.require("Manual/MissingClasses");
//
// may be more..
// // 3) code generated by SharpKit
//--------------------------------------------------
CS.require("SharpKitGeneratedFiles"); // 4) JavaScript implemented
// will overwrite some classes in step 1)
//--------------------------------------------------
CS.require("JSImp/Reflection");
CS.require("JSImp/Coroutine");
CS.require("JSImp/Iterator"); //
// may be more..
// // 5) SharpKit handler (Compile)
//--------------------------------------------------
CS.require("SharpKit/myclrhandler"); // 6) Error handler
//--------------------------------------------------
CS.require("ErrorHandler");

JavaScript 里的类一开始都是用 JsType 对象来表示,可以打开 StreamingAssets/JavaScript/SharpKitGeneratedFiles.javascript/ 查看一下。这里贴出来 V3Test 这个 MonoBehaviour 的 JavaScript 代码:

 if (typeof(JsTypes) == "undefined")
var JsTypes = [];
var V3Test = {
fullname: "V3Test",
baseTypeName: "UnityEngine.MonoBehaviour",
assemblyName: "SharpKitProj",
Kind: "Class",
definition: {
ctor: function (){
this.elapsed = ;
UnityEngine.MonoBehaviour.ctor.call(this);
},
Start: function (){
},
Update: function (){
this.elapsed += UnityEngine.Time.get_deltaTime();
if (this.elapsed > ){
var sb = new System.Text.StringBuilder.ctor();
this.elapsed = ;
var v = new UnityEngine.Vector3.ctor$$Single$$Single$$Single(, , );
var w = new UnityEngine.Vector3.ctor$$Single$$Single$$Single(, , );
var n = v.get_normalized();
var arr = [n.x, n.y, n.z];
UnityEngine.Debug.Log$$Object(sb.AppendFormat$$String$$Object$Array("v.normalized = ({0}, {1}, {2})", arr).toString());
sb.Remove(, sb.get_Length());
var cross = UnityEngine.Vector3.Cross(v, w);
arr = [cross.x, cross.y, cross.z];
UnityEngine.Debug.Log$$Object(sb.AppendFormat$$String$$Object$Array("Cross(v, w) = ({0}, {1}, {2})", arr).toString());
UnityEngine.Debug.Log$$Object("v.magnitude = " + v.get_magnitude());
UnityEngine.Debug.Log$$Object("w.magnitude = " + w.get_magnitude());
UnityEngine.Debug.Log$$Object("Dot(v, w) = " + UnityEngine.Vector3.Dot(v, w));
UnityEngine.Debug.Log$$Object("Angle(v, w) = " + UnityEngine.Vector3.Angle(v, w));
var proj = UnityEngine.Vector3.Project(v, w);
UnityEngine.Debug.Log$$Object("Project(v,w) = " + proj.toString());
v.Normalize();
w.Normalize();
UnityEngine.Debug.Log$$Object("normalized v = " + v.toString());
UnityEngine.Debug.Log$$Object("normalized w = " + w.toString());
}
}
}
};
JsTypes.push(V3Test);

这个文件是由 SharpKit 工程生成的,并不是手写的。

一个 JsType 用于定义一个类。里面的字段通常有:

  • fullname:表示此类的全名,也包含名字空间。V3Test 没有名字空间,所以就没有
  • baseTypeName:父类的名字。在后续的步骤中,会用于实现继承。
  • Kind:通常是 "Class",表示这是一个类。也可以是 "Struct" 或 "Enum"
  • definition:表示实例函数以及实例的 Property,以及构造函数。ctor表示构造函数。V3Test 只有 Start 和 Update 2个函数,是 MonoBehaviour 典型的2个函数。
  • staticDefinition:表示静态函数。
  • fields:实例字段。
  • staticFields:静态字段。
  • interfaceNames:接口的名字,是一个数组

可以看到,每一个类的文件,都是定义一个 JsType,文件最后把他 push 进 JsTypes 数组。

放到 JsTypes 数组干嘛呢?

includes.javascript 里有 require SharpKit/myclrhandler.javascript。可以打开这个文件看一下。这个文件里最重要的一句代码是:

 Compile();

Compile 函数的定义是在 SharpKit/jsclr.javascript 中。有兴趣的可以看一下源代码。

Compile 主要做了2件事:

  1. 设置全局对象,使你可以访问这些类。比如说 你可以使用 UnityEngine.GameObject 来访问这个类。
  2. 处理继承关系。比如说,V3Test并没有定义 gameObject 这个属性,但是在 V3Test 中是可以 this.gameObject 访问的。

返回:Unity代码热更新方案 JSBinding + SharpKit 首页

上一篇:VS2017自定义新建模板


下一篇:delphi 获取时间戳 如何得到 和 js 中 new Date().getTime();的 相同?