class-description NEWS COMMUNITY STORE LABS SIGN UP LOGIN LOGOUT ROKOJORI NEWSLETTER SIGN UP LOGIN LOGOUT NEWS COMMUNITY STORE LABS TOGGLE FULLSCREEN VOLLBILD AN/AUS ObjectRefCounted Resource
Base class for serializable objects.

Resource is the base class for all Godot-specific resource types, serving primarily as data containers. Since they inherit from RefCounted, resources are reference-counted and freed when no longer in use. They can also be nested within other resources, and saved on disk. PackedScene, one of the most common Objects in a Godot project, is also a resource, uniquely capable of storing and instantiating the Nodes it contains as many times as desired.

In GDScript, resources can loaded from disk by their resource_path using @GDScript.load or @GDScript.preload.

The engine keeps a global cache of all loaded resources, referenced by paths (see ResourceLoader.has_cached). A resource will be cached when loaded for the first time and removed from cache once all references are released. When a resource is cached, subsequent loads using its path will return the cached reference.

changed changed<>():changed

Emitted when the resource changes, usually when one of its properties is modified. See also emit_changed.

Note: This signal is not emitted automatically for properties of custom resources. If necessary, a setter needs to be created to emit the signal.

setup_local_to_scene_requested setup_local_to_scene_requested<>():setup_local_to_scene_requested

Emitted by a newly duplicated resource with resource_local_to_scene set to true.

Deprecated. This signal is only emitted when the resource is created. Override _setup_local_to_scene instead.

bool resource_local_to_scene<>():bool

If true, the resource is duplicated for each instance of all scenes using it. At run-time, the resource can be modified in one scene without affecting other instances (see PackedScene.instantiate).

Note: Changing this property at run-time has no effect on already created duplicate resources.

String resource_name<>():String

An optional name for this resource. When defined, its value is displayed to represent the resource in the Inspector dock. For built-in scripts, the name is displayed as part of the tab name in the script editor.

Note: Some resource formats do not support resource names. You can still set the name in the editor or via code, but it will be lost when the resource is reloaded. For example, only built-in scripts can have a resource name, while scripts stored in separate files cannot.

String resource_path<>():String

The unique path to this resource. If it has been saved to disk, the value will be its filepath. If the resource is exclusively contained within a scene, the value will be the PackedScene's filepath, followed by a unique identifier.

Note: Setting this property manually may fail if a resource with the same path has already been previously loaded. If necessary, use take_over_path.

RID _get_rid<>():RID

Override this method to return a custom RID when get_rid is called.

void _setup_local_to_scene<>():void

Override this method to customize the newly duplicated resource created from PackedScene.instantiate, if the original's resource_local_to_scene is set to true.

Example: Set a random damage value to every local resource from an instantiated scene.

extends Resource var damage = 0 func _setup_local_to_scene(): damage = randi_range(10, 40)
Resource duplicate<>( bool subresources=false, subresources:bool=false, ):Resource

Duplicates this resource, returning a new resource with its exported or @GlobalScope.PROPERTY_USAGE_STORAGE properties copied from the original.

If subresources is false, a shallow copy is returned; nested resources within subresources are not duplicated and are shared from the original resource. If subresources is true, a deep copy is returned; nested subresources will be duplicated and are not shared.

Subresource properties with the @GlobalScope.PROPERTY_USAGE_ALWAYS_DUPLICATE flag are always duplicated even with subresources set to false, and properties with the @GlobalScope.PROPERTY_USAGE_NEVER_DUPLICATE flag are never duplicated even with subresources set to true.

Note: For custom resources, this method will fail if Object._init has been defined with required parameters.

void emit_changed<>():void

Emits the changed signal. This method is called automatically for some built-in resources.

Note: For custom resources, it's recommended to call this method whenever a meaningful change occurs, such as a modified property. This ensures that custom Objects depending on the resource are properly updated.

var damage: set(new_value): if damage != new_value: damage = new_value emit_changed()
Node get_local_scene<>():Node

If resource_local_to_scene is set to true and the resource has been loaded from a PackedScene instantiation, returns the root Node of the scene where this resource is used. Otherwise, returns null.

RID get_rid<>():RID

Returns the RID of this resource (or an empty RID). Many resources (such as Texture2D, Mesh, and so on) are high-level abstractions of resources stored in a specialized server (DisplayServer, RenderingServer, etc.), so this function will return the original RID.

void setup_local_to_scene<>():void

Calls _setup_local_to_scene. If resource_local_to_scene is set to true, this method is automatically called from PackedScene.instantiate by the newly duplicated resource within the scene instance.

Deprecated. This method should only be called internally. Override _setup_local_to_scene instead.

void take_over_path<>( String path=, path:String=, ):void

Sets the resource_path to path, potentially overriding an existing cache entry for this path. Further attempts to load an overridden resource by path will instead return this resource.




All social media brands are registrated trademarks and belong to their respective owners.





CONTACT IMPRINT TERMS OF USE PRIVACY © ROKOROJI ® 2021 rokojori.com
CONTACT IMPRINT TERMS OF USE PRIVACY © ROKOROJI ® 2021 rokojori.com
We are using cookies on this site. Read more... Wir benutzen Cookies auf dieser Seite. Mehr lesen...