+2 votes

E.g. in GDscript you can do:
var scene = preload("res://myscene.scn")
var node = scene.instance()
add_child(node)

How do you do the equivalent in C#?

in Engine by (51 points)

2 Answers

+9 votes

Not sure if this is the way to do it but after reading https://godotengine.org/article/introducing-csharp-godot again I did:

PackedScene ground;

public override void _Ready()
{
    ground = (PackedScene)ResourceLoader.Load("res://scenes/Ground.tscn");
    StaticBody2D newGround = (StaticBody2D)ground.Instance();
    AddChild(newGround);
}
by (51 points)
edited by

Yup, that's it ;)

0 votes

my answer is not detailed, but
you can initial MyScene.cs with _Notification so that it can be preloaded in another Csharp file just as a variable.

public class AnotherScene : Node2D
{
     public PackedScene Rooms = ResourceLoader.Load<PackedScene>("res://myscene.tscn");

}
by (22 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 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 webmaster@godotengine.org with your username.