千家信息网

JSBinding + SharpKit怎样编译Cs 成 Js

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章将为大家详细讲解有关JSBinding + SharpKit怎样编译Cs 成 Js,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。传递给skc5
千家信息网最后更新 2024年09月22日JSBinding + SharpKit怎样编译Cs 成 Js

这篇文章将为大家详细讲解有关JSBinding + SharpKit怎样编译Cs 成 Js,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

传递给skc5.exe的编译符号,可以在 Compiler.cs 里找到。可以注意到,符号包含 UNITY_EDITOR,这里解释一下为什么。首先,Js里是通过给函数加后缀的方式区分重载函数的,比如说有一个类

1 class A2 {3     public void f(int i){}4     public void f(string s){}5 }

生成的Js函数名分别是

1 f$$Int322 f$$String

当你运行 【JSB | Generate JS and CS Bindings】时,代码是在编辑器下执行的,所以当时肯定有定义 UNITY_EDITOR。我们把A的定义改一下:

class A{#if UNITY_EDITOR    public void f(int i){}#endif    public void f(string s){}}

生成的这2个函数的名字还是

f$$Int32f$$String

如果 Js 编译器没有定义 UNITY_EDITOR,当你调用 a.f("") 时,他生成的 Js 代码是

a.f("") // 没有后缀,调用失败!

因为他以为 f 这个函数是没有重载的,所以不会给他加后缀。结果就是调用失败!

这种情况目前不知道是否存在,反正是有一定的风险的~!

关于JSBinding + SharpKit怎样编译Cs 成 Js就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0