RID是十几个内置数据类型之一,objectID就单纯是一个int数。虽然本质也是一个int,多了封装。
RID在内部用于管理资源,一般处理一些底层操作会遇到。
objectID一般是指Object的get_instance_id返回的,每个实例都有这个,每个类都继承自Object。从全局方法instance_from_id()可以从objectId获取这个id指向的对象。
一个资源被内部服务器用就会赋予一个RID否则为空,Server结尾的全局单例,他们是底层接口,操作都需要靠RID传递资源。
需要你用RID你就传它,不需要就不用管,ObjectID就够了,能够识别是哪个类实例
比如我们以var icon = load(“res://icon.svg”)加载图片为例
加载后会返回CompressedTexture资源实例,而Compressed类会有一个objectID因为继承自Object,
源码里你能看到Compressed实际上还有一个私有的texture变量,他就是一个RID类型
在加载图片时,RenderServer (RS)单例会从读取到的数据创建一个可用的不暴露的资源,再赋值给texture RID。