Double_HSlider
by WestRoam
Double HSlider for Godot 4.4_双向滑动块
▶ C# version
▶ gd version
▶ Double_HSlider (C# version)
● Tutorial
-
Download the "addons" directory and enable the "Double HSlider" plugin.
-
Add child nodes in the scene: Control-->Range-->DoubleHSlider.
-
Connect the "ValueChanged" signal of the control and receive two values, LowerValue and UpperValue.
-
Run the project and enjoy.
● Features
-
Coding by C#, so the Godot .Net version is required to compile this plugin.(Maybe someday I will write a gdscript version.)
-
This is runtime version, so the control can only be used during project execution. The editor version is currently being planned.
-
Double slider control that can obtain two values, lower and upper.
-
Each part of the control can change its color, transparency, and even shape (rewriting the drawing code in the _daraw() function).
-
Ensure that smaller values do not exceed larger values. There are numerical constraints between MinValue, MaxValue, Step, LowerValue, and UpperValue.
-
Bi directional updates between user interface and parameters.
- Sample test:
using Godot;
public partial class Test : Control
{
[Export]
DoubleHSlider doubleHSlider;
[Export] Label lowerV, upperV;
public override void _Ready()
{
doubleHSlider.ValueChanged += DoubleSlider_ValueChanged;
}
private void DoubleSlider_ValueChanged(float lower, float upper)
{
lowerV.Text = lower.ToString();
upperV.Text = upper.ToString();
}
}
▶ Double_HSlider_gd (gd version)
● Features
-
Coding by gdscript.
-
This is runtime version, so the control can only be used during project execution.
-
Double slider control that can obtain two values, lower and upper.
-
Each part of the control can change its color and transparency, including Slider, Range, Hover, Grabber, and Tooltip colors.
-
There are strong numerical constraints between MinValue, MaxValue, Step, LowerValue, and UpperValue.
-
Bi directional updates between user interface and parameters.
-
Useful signals:
signal drag_started()
signal drag_ended()
signal ds_values_changed(lower: float, upper: float)
signal lower_value_changed(value: float)
signal upper_value_changed(value: float)
- Sample test:
extends Control
@export var double_h_slider: DoubleHSliderGd
@export var lower_v: Label
@export var upper_v: Label
func _ready():
double_h_slider.ds_values_changed.connect(_on_double_slider_value_changed)
double_h_slider.lower_value_changed.connect(_on_lower_value_changed)
double_h_slider.upper_value_changed.connect(_on_upper_value_changed)
func _on_double_slider_value_changed(lower: float, upper: float):
lower_v.text = str(lower)
upper_v.text = str(upper)
print(lower)
func _on_lower_value_changed(lower:float):
print(lower)
func _on_upper_value_changed(upper:float):
print(upper)
● Road Map 计划
-
Fix bug and Adapt to various application scenarios.(Done in gd version)
-
Create a runtime version of gdscript.(Done)
-
Create a gdscript editor version.(Doing...)
- If you have any issues or bugs, please submit a 'New issue'.
Download
Support
If you need help or have questions about this plugin, please contact the author.
Contact Author