How do i change the background colour of a Panel node.

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By stubbsy345
:warning: Old Version Published before Godot 3 was released.

Hi,

This may be a bit of a simple one but I cannot figure out how to do it. I have tried using the color overide function but this doesn’t appear to be working. Help would be greatly appreciated.

Thanks

:bust_in_silhouette: Reply From: Zylann

There is a Custom Styles category in panels in which you can set custom StyleBoxes.
I tested changing the Panel one with a new StyleBoxFlat, which changes the color of the panel but not dynamically.
You can set the Bg Color of the StyleBox but it doesn’t update in the editor, which is not handy :stuck_out_tongue:
If you run the scene however, you’ll see the color.

When it’s about to do that in code, I managed to get a blinking panel with this:

extends Panel

var style = StyleBoxFlat.new()

func _ready():
	# The Panel doc tells you which style names there are
	add_style_override("panel", style)
	set_process(true)

func _process(delta):
	# Some basic code animation
	var color = Color(0.5*sin(OS.get_ticks_msec()/100.0)+0.5, 0, 0)
	style.set_bg_color(color)
	# Don't forget to update so the control will redraw
	update()
:bust_in_silhouette: Reply From: Talmore

Dated question, but I found that you can create a shadermaterial under the inspector properties window with the panel selected
Not sure this is the best way, put I got my panel to be whatever color I wanted…

(Using GODOT 3.1.1)