Godot Version
4.2
Question
Hello, I’m creating a game in C# godot. I are creating a FPS controller but, to create a smooth movement, use a lerp and this get me a error. Sorry for my bad english.
4.2
Hello, I’m creating a game in C# godot. I are creating a FPS controller but, to create a smooth movement, use a lerp and this get me a error. Sorry for my bad english.
You are looking for the method on Vector3
, the one in Mathf
isn’t for vectors, try direction.Lerp(...)
The expression you entered GlobalTransform.Basis * new Vector3(input_dir.X, 0, input_dir.Y)
gives back a Vector3
value. However the Mathf.Lerp
function’s second argument (which is the place where you’ve entered the expression causing the error) must be a float
, since the function itself returns a float
.
Basically, you can’t use Mathf.Lerp
to interpolate a Vector3
into another; Mathf.Lerp
is only used to interpolate numerical values. Nevertheless, Godot has a Vector3
method called move_toward
in GDScript that does what you’re wanting to do (cf Vector3 — Godot Engine (stable) documentation in English). The C# equivalent of this method is probably called MoveToward()
.
So I’d rewrite the line pushing the error as:
direction = direction.MoveToward(new Vector3(input_dir.X, 0.0, input_dir.Y), (float)delta * air_res).Normalized();
(Forgive me if I did any C# syntax errors, I usually code in GDScript.)
Thanks, it works!!
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.