RefCounted¶
Inherits: Object
Inherited By: AESContext, AStar, AStar2D, AnimationTrackEditPlugin, AudioEffectInstance, AudioStreamPlayback, CameraFeed, CharFXTransform, ConfigFile, Crypto, DTLSServer, Directory, ENetConnection, EditorExportPlugin, EditorFeatureProfile, EditorInspectorPlugin, EditorResourceConversionPlugin, EditorResourcePreviewGenerator, EditorSceneFormatImporter, EditorScenePostImport, EditorScenePostImportPlugin, EditorScript, EditorTranslationParserPlugin, EncodedObjectAsID, EngineProfiler, Expression, File, HMACContext, HTTPClient, HashingContext, JSON, JavaClass, JavaScriptObject, KinematicCollision2D, KinematicCollision3D, Lightmapper, MeshDataTool, MultiplayerAPI, Mutex, Node3DGizmo, OGGPacketSequencePlayback, PCKPacker, PackedDataContainerRef, PacketPeer, PhysicsPointQueryParameters2D, PhysicsPointQueryParameters3D, PhysicsRayQueryParameters2D, PhysicsRayQueryParameters3D, PhysicsShapeQueryParameters2D, PhysicsShapeQueryParameters3D, PhysicsTestMotionParameters2D, PhysicsTestMotionParameters3D, PhysicsTestMotionResult2D, PhysicsTestMotionResult3D, RDAttachmentFormat, RDFramebufferPass, RDPipelineColorBlendState, RDPipelineColorBlendStateAttachment, RDPipelineDepthStencilState, RDPipelineMultisampleState, RDPipelineRasterizationState, RDPipelineSpecializationConstant, RDSamplerState, RDShaderSource, RDTextureFormat, RDTextureView, RDUniform, RDVertexAttribute, RandomNumberGenerator, RegEx, RegExMatch, Resource, ResourceFormatLoader, ResourceFormatSaver, ResourceImporter, SceneState, SceneTreeTimer, Semaphore, SkinReference, StreamPeer, SurfaceTool, TCPServer, TextLine, TextParagraph, TextServer, Thread, TriangleMesh, Tween, Tweener, UDPServer, UPNP, UPNPDevice, VelocityTracker3D, VisualScriptFunctionState, WeakRef, WebRTCPeerConnection, XMLParser, XRInterface, XRPose, XRPositionalTracker
Base class for reference-counted objects.
Description¶
Base class for any object that keeps a reference count. Resource and many other helper objects inherit this class.
Unlike other Object types, RefCounted
s keep an internal reference counter so that they are automatically released when no longer in use, and only then. RefCounted
s therefore do not need to be freed manually with Object.free.
In the vast majority of use cases, instantiating and using RefCounted
-derived types is all you need to do. The methods provided in this class are only for advanced users, and can cause issues if misused.
Note: In C#, reference-counted objects will not be freed instantly after they are no longer in use. Instead, garbage collection will run periodically and will free reference-counted objects that are no longer in use. This means that unused ones will linger on for a while before being removed.
Tutorials¶
Methods¶
init_ref ( ) |
|
reference ( ) |
|
unreference ( ) |
Method Descriptions¶
bool init_ref ( )
Initializes the internal reference counter. Use this only if you really know what you are doing.
Returns whether the initialization was successful.
bool reference ( )
Increments the internal reference counter. Use this only if you really know what you are doing.
Returns true
if the increment was successful, false
otherwise.
bool unreference ( )
Decrements the internal reference counter. Use this only if you really know what you are doing.
Returns true
if the decrement was successful, false
otherwise.