网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
10月04日
漏签
0
天
godot吧
关注:
6,500
贴子:
32,472
看贴
图片
吧主推荐
游戏
24
回复贴,共
1
页
<<返回godot吧
>0< 加载中...
gdextension如何注册一个c++数据结构类?
只看楼主
收藏
回复
xm94732568960
物理系统
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
原版的TileMap内存占用太恐怖(因为是做成noita那样的小像素数量巨多),所以为了实现自己的PixelMap,自写了一个环形二维数组,然后不知道怎么注册到引擎里来调试
雷伊盖亚0
小吧主
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
示例里面有例子,至于模板泛型,godot的gdscript不支持,但是Variant类型可以容纳所有godot的类型,在gdscript没有定义类型的变量都是Variant
xm94732568960
物理系统
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
雷伊盖亚0
小吧主
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
用宏在bind method里绑定BIND_VIRTUAL_METHOD(类,方法
)
xm94732568960
物理系统
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
然后写了一个“get_class_static”还是不行
xm94732568960
物理系统
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
雷伊盖亚0
小吧主
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你用GDCLASS宏注册类时就已经把get_class_static加进了你的类里。
xm94732568960
物理系统
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这三行注册属性的代码直接把引擎搞崩
注册方法倒没问题
xm94732568960
物理系统
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
就是这个add_property把引擎搞崩,去掉这个就没事,不知道怎么解决
xm94732568960
物理系统
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
怎么想这个属性都应该是没问题的啊
雷伊盖亚0
小吧主
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
用示例里的方法试过吗?
用ADD_PROPERTY宏注册属性
忘忧Zeleen
godot
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
GDExtension的现在没法注册面向GDScript的虚方法。ClassDB里注册虚方法的宏不是给用户用的,是给内置类用的,内置类在GDExtension里会定义一个注册虚方法的注册方法,我们自定义类的GDCLASS()宏给我们定义了,不像_bind_methods()一样我们能自己写。
现在要实现这样虚方法的效果就只能在c++和GDScript里都使用call()去调用,当然在c++里你可以多写一个正真的虚方法去调用那个使用call()的方法,然后由c++的子类override。
我看你还是用了多继承,建议把godot内置类的继承申明写在前。其实Godot源码风格是反对多继承的。
崩溃多半是你这个类不能无参构造出有效的成员,引擎启动的时候要把所有非抽象类都实例化一个出来取属性的默认值,比如说你get_prop()里是从另一个指针里取它的prop,但是午餐构造出来之后这个指针为空,那就变成访问非法地址,直接崩。
反正这样也看不出来究竟为啥, 建议带上调试符号和dev_build编译进行调试,在哪崩为什么崩也就一目了然
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示