1) 序列化不支持 public List<T>,其余都支持(JSBinding+Bridge无此功能)

2015年11月5日 补充:序列化只处理 Field。目前发现 AnimationCurve 可以在编辑器里编辑,不过他没有 Field,全是 Property,所以不支持,正在想办法

 1 1 public int v; // 支持
2 2 public GameObject go; // 支持
3 3 public Transform trans; // 支持
4 4 public int[] arrInt; // 支持
5 5 public Vector3 v; // 支持
6 6 [Serializable]
7 7 public struct HandsomeGuyInfo {
8 8 public int jjLength;
9 9 public Vector3 jjDirection;
10 10 public string[] girlFriendNames;
11 11 };
12 12 public HandsomeGuyInfo[] infos; // 支持
13 13 public List<int> lst; // 不支持 List,请使用数组

有一点需要注意:如果一个 GameObject 绑定同一个脚本A(A将变成JS)不止一次,那么这个A将不能被其他脚本引用,因为无法区分是哪一个。

2) 菜单:[JSB | Add JsType Attribute for all structs and classes]JSBinding+Bridge无此功能)
可以执行多次,如果一个类或者结构体已经有 JsType 标签,并不会再次添加。但是有个限制,如果类同时有多个标签,JsType 必须是最靠近类定义的那一行。

注意:如果类有<T>,无法自动加 JsType,要手动加

 1  1 using UnityEngine;
2 2 using System.Collections;
3 3
4 4 using SharpKit.JavaScript;
5 5 [JsType(JsMode.Clr,"../../StreamingAssets/JavaScript/SharpKitGenerated/2DPlatformer/Scripts/Gun.javascript")]
6 6 public class Gun : MonoBehaviour
7 7 {
8 8 public GameObject rocketGO; // Prefab of the rocket.
9 9 public float speed = 20f; // The speed the rocket will fire at.
10 10
11 11 //........
12 12 }

3) 支持 C# 的Coroutine,具体请查看:JSBinding + SharpKit / Coroutine支持

4) 不要使用 as 操作符。转换成 JS 后会有额外判断开销。最好直接用强制转换JSBinding+Bridge不需要注意)

1 UnityEngine.Object obj = ...;
2
3 GameObject go = obj as GameObject; // DON'T
4 GameObject go = (GameObject)obj; // GREAT

5) 目前数组只能做为输入。也是只当JS->CS交互时。比如说C#里有一个函数

1 void ModifyArray(int[] arr)
2 {
3 for (var i = 0; i < arr.Length; i++)
4 arr[i] = i;
5 }

当你从JS调用这个函数

1 var arr = [5,2,3,2];
2 ModifyArray(arr);
3
4 // 调用完后,arr 仍然是 5,2,3,2

6) 数组只支持1维哦。是指 JS->CS交互时只1维,如果你的代码后来全部转换成JS代码了,没有交互,那么应该是几维都可以。

7) 使用Debug.Log() 时,要显示地使用 ToString() 来构造字符串

1 Vector3 v = Vector3.one;
2 Debug.Log("v is " + v); // WRONG
3 Debug.Log("v is " + v.ToString()); // OK

8) 完全支持 List<>, Dictionary<>。

2015年11月5日 补充:建议是使用 JS 版本的 List 和 Dictionary。

2016年04月06号 补充:如果使用 JS 版本的 List ,性能好,但是有一个重要的限制:不可以在 JS 和 C# 之间传递 List 对象!参数可以改用数组。

10) 支持 delegate =操作,+=操作,-=操作。具体查看生成的JS代码就很好理解了。

举个例子吧,NGUI 中对 UIEventListener 的使用

// C#

 1  1 public class test0610 : MonoBehaviour {
2 2 public UIButton btn;
3 3
4 4 void Start ()
5 5 {
6 6 UIEventListener.Get(btn.gameObject).onClick += this.OnClick1; // (1)
7 7 UIEventListener.Get(btn.gameObject).onClick += this.OnClick2; // (2)
8 8 }
9 9
10 10 void OnClick1(GameObject go)
11 11 {
12 12 Debug.Log("onclick1 ");
13 13
14 14 UIEventListener.Get(btn.gameObject).onClick -= this.OnClick1; // (3)
15 15 }
16 16 void OnClick2(GameObject go)
17 17 {
18 18 Debug.Log("onclick2 ");
19 19 }
20 20 }

// JS

 1  1 if (typeof(JsTypes) == "undefined")
2 2 var JsTypes = [];
3 3 var test0610 = {
4 4 fullname: "test0610",
5 5 baseTypeName: "UnityEngine.MonoBehaviour",
6 6 assemblyName: "SharpKitProj",
7 7 Kind: "Class",
8 8 definition: {
9 9 ctor: function (){
10 10 this.btn = null;
11 11 UnityEngine.MonoBehaviour.ctor.call(this);
12 12 },
13 13 Start: function (){
14 14 UIEventListener.Get(this.btn.get_gameObject()).onClick = $CombineDelegates(UIEventListener.Get(this.btn.get_gameObject()).onClick, $CreateDelegate(this, this.OnClick1)); // (1)
15 15 UIEventListener.Get(this.btn.get_gameObject()).onClick = $CombineDelegates(UIEventListener.Get(this.btn.get_gameObject()).onClick, $CreateDelegate(this, this.OnClick2)); // (2)
16 16 },
17 17 OnClick1: function (go){
18 18 UnityEngine.Debug.Log$$Object("onclick1 ");
19 19 UIEventListener.Get(this.btn.get_gameObject()).onClick = $RemoveDelegate(UIEventListener.Get(this.btn.get_gameObject()).onClick, $CreateDelegate(this, this.OnClick1)); // (3)
20 20 },
21 21 OnClick2: function (go){
22 22 UnityEngine.Debug.Log$$Object("onclick2 ");
23 23 }
24 24 }
25 25 };
26 26 JsTypes.push(test0610);

这里的重点是 $CombineDelegate,$RemoveDelegate。可以在 clrlibrary.javascript 中找到实现。

另外需要注意,在JS中,不管是 +=,-=,都会被转换为 = ,这个说明一个问题,就是,你不可能对一个 C# 中的 Delegate 同时使用 C# 函数和 JS 函数。因为 JS 使用=了。这个没什么问题,通常也不需要那么做。

11) 没有测试过反射,尽可能不用反射相关代码,除非你对代码非常熟悉了。

12) 不支持不安全代码(char*等),SharpKit 不支持。

13) 不要在JS中操作大量的二进制数据(例如int数组、byte[]),因为C# <-> C <-> JS 传递时性能极差。建议将所有二进制操作都封装在C#。

以后会考虑特殊处理byte[]参数,将其用类包装起来,包装后byte[]仍然只存在于C#,可以用于在C#不同函数之间进行快速传递。

14) GetComponent系列的函数,支持 GetComponent<基类>()!(2015年8月13号增加支持,查看 JSEngine.IsInheritanceRel 函数)

15) 目前脚本转换成JSComponent时,所有 public 且没有 [NonSerialized] 标签的变量都会被处理序列化,并没有判断变量的类型,(请看JSSerializerEditor.GetTypeSerializedFields)。如果你有不能序列化的类型的public变量,需要手动加上 [NonSerialized]。例如 JSBinding+Bridge不需要注意)

[NonSerilized]
public Dictionary<int, int> someDict;

 16) Object.FindObjectOfType不支持

 17) 所有继承自带<T>类(A)的子类只能共用A里的静态变量。这是 SharpKit 不支持,没办法。例如 (JSBinding+Bridge已支持)

 1 class A<T>
2 {
3 public static int v;
4 }
5 class B : A<B>
6 {
7 }
8 class C : A<C>
9 {
10 }
11
12 B.v = "v of B";
13 C.v = "v of C";
14 // C# 会打印2个不同的值
15 // 但是转成 JavaScript 后,以下2个将会都打印 v of C,因为他们的 v 实际是同一个
16 print(B.v);
17 print(C.v);

18) 不可在循环内产生闭包,JavaScript无法正确闭包。可以使用一个Action来做,例如:(JSBinding+Bridge已支持)

1 Action<int> doAction = (i) => {
2 combats[i].OnCombatStarted = () => {};
3 };
4
5 for (var i = 0; i < 3; i++) {
6 doAction(i);
7 }

19) 不可使用params不定参数关键字  2016/1/7 支持

JavaScript不支持,请使用数组。如果是在导出的C#类中包含params关键字则是可以的。

20) 禁止使用Linq(JSBinding+Bridge已支持)

iOS不支持,JavaScript不支持

21) 不可使用隐式转换(JSBinding+Bridge已支持)

22) 整数数除整数必须使用 jsimp.Misc.Floor 括起来  2016/1/7 支持

23) 不可使用partial

可使用继承处理已有partial  2016/2/5 支持

24) 如果一个 GameObject 初始 active=false,则他上面脚本的编辑器里赋值的public变量还不可访问。

public变量初始化是在Awake里做的,但是如果一个 GameObject 还没有被active,他的Awake还没有被调用,所以那些变量还无法使用!

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

2016/02/25 支持了

返回:

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

最新文章

  1. 反编译.NET工程
  2. 阿里云linux ecs服务器配置apache+php环境
  3. CentOS linux系统搭建LAMP环境
  4. servlet设置缓存时间以及文件的下载
  5. Unix如何轻松快速复制
  6. javascript朝花夕拾
  7. HDU 4923 Room and Moor (多校第六场C题) 单调栈
  8. vim的颜色修改,高亮设置。
  9. FreeNAS-9.10虚拟机测试安装
  10. webmagic爬虫抓取工作室成员博客
  11. U-boot的编译方式及目录结构解析
  12. python3数字、日期和时间
  13. 【Tools】-NO.10.Tools.2.IDEA.1.001-【IDEA Configuration】-
  14. 图学ES6-5.正则的扩展
  15. 软工网络15团队作业4-DAY6
  16. 一个比较典型的WMI查询
  17. 【CF1009F】 Dominant Indices (长链剖分+DP)
  18. oracle 数据导入和导出(原创)
  19. 【lightoj-1055】Going Together(BFS)
  20. sticky footer布局

热门文章

  1. linux 杀死进程的方法
  2. catch的执行与try的匹配
  3. hadoop 中对Vlong 和 Vint的压缩方法
  4. 0816 1459 json &amp; pickle ,目录导入,目录规范
  5. HTML的表单
  6. Android Studio调试功能使用总结
  7. Cisco ASA 高级配置
  8. Unity3D ShaderLab 基础的高光实现
  9. PHP 防范CC攻击
  10. 【avalon】createMap