Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
RefCounted
Eredita: Object
Ereditato da: 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, GDScriptTextDocument, GDScriptWorkspace, GLTFObjectModelProperty, HashingContext, HMACContext, HTTPClient, ImageFormatLoader, JavaClass, JavaObject, JavaScriptObject, KinematicCollision2D, KinematicCollision3D, Lightmapper, Logger, MeshConvexDecompositionSettings, MeshDataTool, MultiplayerAPI, Mutex, NavigationPathQueryParameters2D, NavigationPathQueryParameters3D, NavigationPathQueryResult2D, NavigationPathQueryResult3D, Node3DGizmo, OggPacketSequencePlayback, OpenXRAPIExtension, OpenXRFutureResult, OpenXRSpatialCapabilityConfigurationBaseHeader, OpenXRSpatialComponentData, OpenXRStructureBase, PackedDataContainerRef, PacketPeer, PCKPacker, PhysicsPointQueryParameters2D, PhysicsPointQueryParameters3D, PhysicsRayQueryParameters2D, PhysicsRayQueryParameters3D, PhysicsShapeQueryParameters2D, PhysicsShapeQueryParameters3D, PhysicsTestMotionParameters2D, PhysicsTestMotionParameters3D, PhysicsTestMotionResult2D, PhysicsTestMotionResult3D, RandomNumberGenerator, RDAccelerationStructureGeometry, RDAccelerationStructureInstance, RDAttachmentFormat, RDFramebufferPass, RDHitGroup, RDPipelineColorBlendState, RDPipelineColorBlendStateAttachment, RDPipelineDepthStencilState, RDPipelineMultisampleState, RDPipelineRasterizationState, RDPipelineShader, RDPipelineSpecializationConstant, RDSamplerState, RDShaderSource, RDTextureFormat, RDTextureView, RDUniform, RDVertexAttribute, RegEx, RegExMatch, RenderSceneBuffers, RenderSceneBuffersConfiguration, Resource, ResourceFormatLoader, ResourceFormatSaver, ResourceImporter, SceneState, SceneTreeTimer, ScriptBacktrace, Semaphore, SkinReference, SocketServer, StreamPeer, SurfaceTool, TextLine, TextParagraph, TextServer, Thread, TLSOptions, TranslationDomain, TriangleMesh, Tween, Tweener, UDPServer, UPNP, UPNPDevice, WeakRef, WebRTCPeerConnection, XMLParser, XRInterface, XRPose, XRTracker, ZIPPacker, ZIPReader
Classe di base per oggetti con conteggio dei riferimenti.
Descrizione
Classe di base per qualsiasi oggetto che mantiene un conteggio dei riferimenti. Resource e molti altri oggetti di supporto ereditano questa classe.
A differenza di altri tipi di Object, i RefCounted mantengono un contatore dei riferimenti interno in modo che siano rilasciati automaticamente quando non sono più in uso, e solo allora. I RefCounted non devono quindi essere liberati manualmente con Object.free().
Le istanze RefCounted catturate in un riferimento ciclico non saranno liberate automaticamente. Ad esempio, se un nodo contiene un riferimento all'istanza A, che contiene direttamente o indirettamente un riferimento ad A, il conteggio dei riferimenti di A sarà 2. La distruzione del nodo lascerà A sospeso con un conteggio dei riferimenti di 1 e accadrà una perdita di memoria. Per evitare ciò, uno dei riferimenti nel ciclo può essere reso debole con @GlobalScope.weakref().
Nella stragrande maggioranza dei casi d'uso, è sufficiente istanziare e usare tipi derivati da RefCounted. I metodi forniti in questa classe sono solo per gli utenti avanzati e possono causare problemi se usati in modo improprio.
Nota: In C#, gli oggetti con conteggio dei riferimenti non saranno liberati immediatamente dopo che non sono più in uso. Invece, la garbage collection sarà eseguita periodicamente e libererà gli oggetti con conteggio dei riferimenti che non sono più in uso. Ciò significa che quelli inutilizzati rimarranno in memoria per un po' prima di essere rimossi.
Tutorial
Metodi
get_reference_count() const |
|
init_ref() |
|
Descrizioni dei metodi
int get_reference_count() const 🔗
Restituisce il conteggio attuale dei riferimenti.
Inizializza il contatore di riferimento interno. Usalo solo se sai davvero cosa stai facendo.
Restituisce se l'inizializzazione è riuscita.
Incrementa il contatore di riferimento interno. Usalo solo se sai davvero cosa stai facendo.
Restituisce true se l'incremento ha avuto successo, altrimenti false.
Decrementa il contatore di riferimento interno. Usalo solo se sai davvero cosa stai facendo.
Restituisce true se l'oggetto dovrebbe essere liberato dopo il decremento, altrimenti false.