Godot C# Skill
C# programming for Godot Engine development.
Overview
This skill provides capabilities for implementing game logic using C# in Godot, leveraging .NET integration.
Capabilities
C# Integration
- Node class inheritance
- Attribute-based exports
- Signal definitions
- Callable system
.NET Features
- NuGet packages
- Async/await patterns
- LINQ queries
- .NET libraries
Interoperability
- Call GDScript from C#
- Expose to GDScript
- Handle Variant types
- Manage signals
Performance
- Struct usage
- Memory management
- Object pooling
- Span usage
Prerequisites
- Godot 4.0+ with .NET support
- .NET SDK installed
- C# IDE (VS Code, Rider)
Usage Patterns
Node Script
using Godot;
public partial class Player : CharacterBody2D
{
[Export]
public float Speed { get; set; } = 200f;
[Signal]
public delegate void HealthChangedEventHandler(int newHealth);
private int _health = 100;
public override void _Ready()
{
// Initialize
}
public override void _PhysicsProcess(double delta)
{
var velocity = Vector2.Zero;
velocity.X = Input.GetAxis("move_left", "move_right");
velocity.Y = Input.GetAxis("move_up", "move_down");
Velocity = velocity.Normalized() * Speed;
MoveAndSlide();
}
}
Signal Connection
button.Pressed += OnButtonPressed;
// or
button.Connect("pressed", Callable.From(OnButtonPressed));
Best Practices
- Use partial classes
- Leverage NuGet packages
- Handle node lifecycle
- Profile memory usage
- Use source generators