[.NET] Use ObjectID when converting Variant to GodotObject

(cherry picked from commit bfcc389e21)
This commit is contained in:
Raul Santos 2024-10-09 21:19:53 +02:00 committed by Rémi Verschelde
parent bdf4f38ac4
commit f045c4c283
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)