34 lines
936 B
C#
34 lines
936 B
C#
using Godot;
|
|
|
|
// This script is an example of how you can create game systems that
|
|
// interact with PlayerController. This script applies a low gravity effect
|
|
// to any PlayerController that enters the Area3D. It does this by modifying
|
|
// the value of AdditionalGravityPower owned by the Gravity child of
|
|
// PlayerController.
|
|
|
|
namespace Movementtests.player_controller.Examples.MovementTestbed;
|
|
|
|
public partial class LowGravityArea3D : Area3D
|
|
{
|
|
[Export] public float GravityReduction { set; get; } = 0.4f;
|
|
|
|
public override void _Ready()
|
|
{
|
|
BodyEntered += (Node3D body) =>
|
|
{
|
|
if (body is PlayerController player) {
|
|
player.Gravity.AdditionalGravityPower *= GravityReduction;
|
|
GD.Print("Low Gravity Zone Entered");
|
|
}
|
|
};
|
|
BodyExited += (Node3D body) =>
|
|
{
|
|
if (body is PlayerController player) {
|
|
player.Gravity.AdditionalGravityPower /= GravityReduction;
|
|
GD.Print("Low Gravity Zone Exited");
|
|
}
|
|
};
|
|
}
|
|
}
|
|
|