0 votes

I have a c# node with a function that returns a value of type list<list>

how can I access that value as godot.array in node gdscript?

thanks

in Engine by (14 points)

1 Answer

0 votes

You have to convert the List into a Godot Array:

public class Bar : Godot.Node
{
    public Godot.Collections.Array<string> Capitals()
    {
        var list = new System.Collections.Generic.List<string>();
        list.Add("Berlin");
        list.Add("Paris");
        list.Add("London");

        var array = new Godot.Collections.Array<string>(list);
        return array;
    }
}

Then you can use it in GDScript:

extends Node

func _ready():
    var bar = load("res://Bar.cs").new()
    var capitals: Array = bar.Capitals();
    for capital in capitals:
        print(capital)

Also take a look at the docs:
https://docs.godotengine.org/en/stable/tutorials/scripting/cross_language_scripting.html

by (933 points)
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read Frequently asked questions and How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to [email protected] with your username.