网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月06日
漏签
0
天
godot吧
关注:
6,288
贴子:
31,616
看贴
图片
吧主推荐
游戏
25
回复贴,共
1
页
<<返回godot吧
>0< 加载中...
GDExtension里Callable要怎么用?
只看楼主
收藏
回复
xm94732568960
物理系统
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
改成这样也不行
雷伊盖亚0
小吧主
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
grid.foreach函数怎么定义的?
我这编译没问题(我这gdextension版本小于4.1)
xm94732568960
物理系统
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
xm94732568960
物理系统
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
奇怪,写成这样就能通过编译
xm94732568960
物理系统
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
好像是gdextension有bug,它的源文件没有给出call() call_defferd()等一系列函数的定义导致无法通过编译!
xm94732568960
物理系统
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
果断加.cpp,但是找不到文件是怎么回事
雷伊盖亚0
小吧主
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
测试了一下callv应该没有问题,call可能是还没实现,不能用
其实用object的call也行,object->call(methodName, arg1,arg2)
Callable的get_object方法不行,获取不到,应该是bug
xm94732568960
物理系统
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
被恶心到了,因为c++方法需要封装成能注册进godot的形式才能在引擎里使用,然后因为封装导致性能还不如gdscript,那这个gdextension有啥用
贴吧用户_5E8PCNb
godot
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
gdextension思路是好的,但这本身问题太多,且不可导出c#接口,建议重IO的部分写module,重cpu的部分用c#
忘忧Zeleen
godot
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
Callable的call(), call_deferred(), rpc(), rpc_id(), bind() 和 Signal的emit()这些内置类型的模板函数现在只有声明没有定义,这个问题已经有pr去实现了,还没合并。
你自己加callable.cpp也没用,这个模板的定义压根就没生成,照猫画虎的写个实现也是没有效果的,指针需要从Godot那边赋值到GDExtension。目前只能用带后缀v的接口用Array包装参数。
所有的api在第一次调用的时候会从Godot那边的ClassDB找这个api的指针,所以第一次会慢一点,后续的调用就不会。
你在c++里写foreach就没有用Callable的必要,类型std::function或者特定类型的函数指针更快,除非是信号回调,不然用Callable就挺浪费性能的。
总之在暴露给脚本的接口以外的地方尽量减少使用Godot脚本里用的数据类型,才能体现用c++的优势。
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示