Resource
Inherits: Reference < Object Inherited By: Animation, AnimationNode, AnimationNodeStateMachinePlayback, AnimationNodeStateMachineTransition, AudioBusLayout, AudioEffect, AudioStream, BakedLightmapData, BitMap, ButtonGroup, CryptoKey, CubeMap, Curve, Curve2D, Curve3D, DynamicFontData, EditorSettings, EditorSpatialGizmoPlugin, Environment, Font, GDNativeLibrary, GIProbeData, GLTFAccessor, GLTFAnimation, GLTFBufferView, GLTFCamera, GLTFDocument, GLTFLight, GLTFMesh, GLTFNode, GLTFSkeleton, GLTFSkin, GLTFSpecGloss, GLTFState, GLTFTexture, Gradient, Image, InputEvent, Material, Mesh, MeshLibrary, MultiMesh, NavigationMesh, NavigationPolygon, OccluderPolygon2D, OccluderShape, OpenSimplexNoise, PackedDataContainer, PackedScene, PhysicsMaterial, PolygonPathFinder, RichTextEffect, Script, Shader, Shape, Shape2D, ShortCut, Skin, Sky, SpriteFrames, StyleBox, TextFile, Texture, TextureLayered, Theme, TileSet, Translation, VideoStream, VisualScriptNode, VisualShaderNode, World, World2D, X509Certificate Base class for all resources.
Description
Reference, resources are reference-counted and freed when no longer in use. They are also cached once loaded from disk, so that any further attempts to load a resource from a given path will return the same reference (all this in contrast to a Node, which is not reference-counted and can be instanced from disk as many times as desired). Resources can be saved externally on disk or bundled into another object, such as a Node or another resource. Note: In C#, resources will not be freed instantly after they are no longer in use. Instead, garbage collection will run periodically and will free resources that are no longer in use. This means that unused resources will linger on for a while before being removed.
Tutorials
- 资源
- 何时以及如何避免为任何事情使用节点
Properties
Methods
Signals
- changed ( )
Emitted whenever the resource changes.
Note: This signal is not emitted automatically for custom resources, which means that you need to create a setter and emit the signal yourself.
Property Descriptions
- bool resource_local_to_scene
true, the resource will be made unique in each instance of its local scene. It can thus be modified in a scene instance without impacting other instances of that same scene.
- String resource_name resource_name is not empty, its value will be displayed to represent the current resource in the editor inspector. For built-in scripts, the resource_name will be displayed as the tab name in the script editor.
- String resource_path
The path to the resource. In case it has its own file, it will return its filepath. If it’s tied to the scene, it will return the scene’s path, followed by the resource’s index.
Method Descriptions
- _setup_local_to_scene ( ) virtual setup_local_to_scene.
- Resource duplicate ( bool subresources=false ) const
Note: To duplicate the resource the constructor is called without arguments. This method will error when the constructor doesn’t have default values.
trueto thesubresourcesargument which will copy the subresources. Note: Ifsubresourcesistrue, this method will only perform a shallow copy. Nested resources within subresources will not be duplicated and will still be shared. Note: When duplicating a resource, onlyexported properties are copied. Other properties will be set to their default value in the new resource.
- emit_changed ( )
changed signal.
If external objects which depend on this resource should be updated, this method must be called manually whenever the state of this resource has changed (such as modification of properties).
The method is equivalent to:
Note: This method is called automatically for built-in resources.emit_signal("changed")
- Node get_local_scene ( ) const
resource_local_to_scene is enabled and the resource was loaded from a PackedScene instantiation, returns the local scene where this resource’s unique copy is in use. Otherwise, returns
null.
- RID get_rid ( ) const Texture, Mesh, etc) are high-level abstractions of resources stored in a server, so this function will return the original RID.
- setup_local_to_scene ( ) resource_local_to_scene enabled is loaded from a PackedScene instantiation. Its behavior can be customized by overriding _setup_local_to_scene from script. ViewportTexture performs custom logic to properly set the proxy texture and flags in the local viewport.
- take_over_path ( String path ) resource_path, as the latter would error out if another resource was already cached for the given path.
