This site is currently in read-only mode during migration to a new platform.
You cannot post questions, answers or comments, as they would be lost during the migration otherwise.
+3 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 (53 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 (53 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 (26 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.