[Unity]考虑将Plugin API简化
Opened this issue · 0 comments
chexiongsheng commented
detail | 详细描述
目前值传递有多套接口,可以考虑简化。
从c#到js传递的接口有:
1、函数、属性返回
ReturnXXX
2、(函数)ref数据返回
SetXXXToOutValue
3、js函数参数设置
PushXXXForJSFunction
从js到c#传递的有:
1、从v8::Value获取值
GetXXXFromValue
2、从js函数调用结果获取值
GetXXXFromResult
最初因为对v8的handle回收机制不够熟悉,没把握一个不被Local<T>
管理的value指针是否会有问题,但了解v8的实现后,Local<T>
只是指针的简单包装(node js的napi也依赖这点),以上接口可以考虑统一成v8::Value和C#的转换,加上一个Push或者Get接口。
好处是便于扩展,比如对JSObject的支持,适配新脚本后端更简单(比如jscore)。
不好的是目前backend_quickjs因为不满足“Local<T>
只是指针的简单包装”可能用不了。
另外的思路是考虑用pesapi来实现。