RefCounted¶
继承: Object
派生: AESContext, AStar2D, AStar3D, AStarGrid2D, AudioEffectInstance, AudioSample, AudioSamplePlayback, AudioStreamPlayback, CameraFeed, CharFXTransform, ConfigFile, Crypto, DirAccess, DTLSServer, EditorContextMenuPlugin, EditorDebuggerPlugin, EditorDebuggerSession, EditorExportPlatform, EditorExportPlugin, EditorExportPreset, EditorFeatureProfile, EditorFileSystemImportFormatSupportQuery, EditorInspectorPlugin, EditorResourceConversionPlugin, EditorResourcePreviewGenerator, EditorResourceTooltipPlugin, EditorSceneFormatImporter, EditorScenePostImport, EditorScenePostImportPlugin, EditorScript, EditorTranslationParserPlugin, EncodedObjectAsID, ENetConnection, EngineProfiler, Expression, FileAccess, GLTFObjectModelProperty, HashingContext, HMACContext, HTTPClient, ImageFormatLoader, JavaClass, JavaObject, JavaScriptObject, KinematicCollision2D, KinematicCollision3D, Lightmapper, MeshConvexDecompositionSettings, MeshDataTool, MultiplayerAPI, Mutex, NavigationPathQueryParameters2D, NavigationPathQueryParameters3D, NavigationPathQueryResult2D, NavigationPathQueryResult3D, Node3DGizmo, OggPacketSequencePlayback, OpenXRAPIExtension, PackedDataContainerRef, PacketPeer, PCKPacker, PhysicsPointQueryParameters2D, PhysicsPointQueryParameters3D, PhysicsRayQueryParameters2D, PhysicsRayQueryParameters3D, PhysicsShapeQueryParameters2D, PhysicsShapeQueryParameters3D, PhysicsTestMotionParameters2D, PhysicsTestMotionParameters3D, PhysicsTestMotionResult2D, PhysicsTestMotionResult3D, RandomNumberGenerator, RDAttachmentFormat, RDFramebufferPass, RDPipelineColorBlendState, RDPipelineColorBlendStateAttachment, RDPipelineDepthStencilState, RDPipelineMultisampleState, RDPipelineRasterizationState, RDPipelineSpecializationConstant, RDSamplerState, RDShaderSource, RDTextureFormat, RDTextureView, RDUniform, RDVertexAttribute, RegEx, RegExMatch, RenderSceneBuffers, RenderSceneBuffersConfiguration, Resource, ResourceFormatLoader, ResourceFormatSaver, ResourceImporter, SceneState, SceneTreeTimer, Semaphore, SkinReference, StreamPeer, SurfaceTool, TCPServer, TextLine, TextParagraph, TextServer, Thread, TLSOptions, TranslationDomain, TriangleMesh, Tween, Tweener, UDPServer, UPNP, UPNPDevice, WeakRef, WebRTCPeerConnection, XMLParser, XRInterface, XRPose, XRTracker, ZIPPacker, ZIPReader
引用计数对象的基类。
描述¶
保留引用计数的任何对象的基类。Resource和许多其他帮助对象继承了这个类。
与其他Object类型不同,RefCounteds保留一个内部引用计数器,以便它们在不再使用时自动释放,并且仅在此时。因此,RefCounteds不需要使用Object.free()手动释放。
循环引用中捕获的RefCounted实例不会自动释放。例如,如果一个节点持有对实例A的引用,该引用直接或间接持有对A的引用,A的引用计数将为2。节点的销毁将使A悬空,引用计数为1,并且会出现内存泄漏。为了防止这种情况,可以使用@GlobalScope.weakref()使循环中的一个引用变弱。
在绝大多数用例中,实例化和使用RefCounted派生类型就是您需要做的一切。此类中提供的方法仅适用于高级用户,如果滥用可能会导致问题。
注意:在C#中,引用计数的对象在不再使用后不会立即被释放。相反,垃圾回收机制将定期运行,并释放不再使用的引用计数的对象。这意味着未使用的对象在被删除之前将在内存中保留一段时间。
方法¶
get_reference_count() const |
|
init_ref() |
|
方法说明¶
int get_reference_count() const 🔗
返回当前引用计数。
初始化内部引用计数器。只有当您真正知道自己在做什么时才使用它。
返回初始化是否成功。
增加内部引用计数器。只有当您真正知道自己在做什么时才使用它。
如果增量成功,则返回true,否则返回false。
减少内部参考计数器。只有当您真正知道自己在做什么时才使用它。
如果对象应该在减量后释放,则返回true,否则返回false。