如果你用js,可能是输错参数了。
如果你用typescript,可能是子类同名,但不同参数的函数覆盖了父类。以System.Text.Encoding.UTF8.GetBytes为例,你直接调用会报错。
System.Text.Encoding.UTF8.GetBytes("你好");
System.Text.Encoding.UTF8指向的对象System.Text.UTF8Encoding,有GetBytes的其它重载,按目前的实现找到当前类有同名函数就不再找基类导致的。这时候你可以手动指定下用其基类接口访问该对象。
Object.setPrototypeOf(System.Text.Encoding.UTF8, System.Text.Encoding.prototype);//只需要调用过一次即可。后续调用GetBytes都不用再调用。
System.Text.Encoding.UTF8.GetBytes("你好");
可能是没调用JsEnv.Tick
这是vscode,其它IDE的看各IDE的指引,按nodejs的调试来处理即可。
你将一个js函数映射为一个delegate有时会报这错误,XXX就是要映射的delegate,可能的情况如下:
-
该delegate带了值类型参数或者返回值,解决办法:如果没有返回值,用JsEnv.UsingAction声明下,有返回值就用JsEnv.UsingFunc声明。
-
参数数量超过4个,解决办法:官方目前只支持4个,如果有需要,可以依葫芦画瓢写更多的参数支持。
-
参数含ref,out的修饰,目前尚未支持,解决办法:填写issues来提需求
执行
sudo xattr -r -d com.apple.quarantine puerts.bundle
因为这些方法是编辑器独有的,可以通过filter过滤掉,filter使用参考使用手册
unity默认会进行代码剪裁,简而言之unity发现某引擎api,系统api没有被业务c#使用,就不编译倒cpp。 解决办法:1、对要调用的api生成wrap代码,这样c#里头就有了引用;2、通过link.xml告知unity别剪裁,link.xml的配置请参考unity官方文档。