Coffee Mayhem #01

Today I was trying to load a texture for a pick up. I couldn’t figure out why it wasn’t working.

At first, I thought it was because the engine wouldn’t let me use a sprite saved inside a custom Resource (which I thought was very weird).

Then I tried loading the resource path for said sprite, still no dice. I tried saving it a variable before loading it, I tried typing it out – still not luck.

I’m going to save myself (and others) the trouble and get to the point. The way I fixed it was by doing the following

func _ready():
	$PickupSprite.texture = pickup.sprite

Prior attempts were done using:

@onready var sprite = $PickupSprite.texture

func _ready():
	sprite = pickup.sprite

Which should work.. I think? I’m guessing there’s some referencing issue between “onready” and “_ready()”. I’m still looking into it to better understand the issue.

Anyway, I wanted to document this in case I ran into the same issue.. or if anyone else did. When I find a proper answer, I’ll edit this!

EDIT: It appears accessing the properties of a node with @onready doesn’t work. Everything worked as intended once I changed the code to this:

@onready var sprite = $PickupSprite

func _ready():
	sprite.texture = pickup.sprite