Merge pull request #98034 from raulsntos/dotnet/variant-object-id

[.NET] Use `ObjectID` when converting `Variant` to `GodotObject`
This commit is contained in:
Rémi Verschelde 2025-03-04 01:00:16 +01:00
commit a414fed4c5
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 14 additions and 1 deletions

View file

@ -455,6 +455,12 @@ namespace Godot.NativeInterop
get => _data._m_obj_data.obj;
}
public readonly ulong ObjectId
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
get => _data._m_obj_data.id;
}
public void Dispose()
{
switch (Type)

View file

@ -485,7 +485,14 @@ namespace Godot.NativeInterop
NativeFuncs.godotsharp_variant_as_rid(p_var);
public static IntPtr ConvertToGodotObjectPtr(in godot_variant p_var)
=> p_var.Type == Variant.Type.Object ? p_var.Object : IntPtr.Zero;
{
if (p_var.Type != Variant.Type.Object || p_var.ObjectId == 0)
{
return IntPtr.Zero;
}
return NativeFuncs.godotsharp_instance_from_id(p_var.ObjectId);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static GodotObject ConvertToGodotObject(in godot_variant p_var)