Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Unity]考虑将Plugin API简化 #1701

Open
chexiongsheng opened this issue Apr 16, 2024 · 0 comments
Open

[Unity]考虑将Plugin API简化 #1701

chexiongsheng opened this issue Apr 16, 2024 · 0 comments

Comments

@chexiongsheng
Copy link
Collaborator

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来实现。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant