Зависит от того, хотите ли вы 2D или 3D.
Общий метод таков:
- Создайте объект, который вы хотите скопировать в своей собственной сцене.
- Сохранить объект как сцену (файл .tscn) - например, "Scene1.tscn"
Вызвать вашу сцену из вашей основной сцены следующим образом:
- Обязательно предварительно загрузите сцену, которую вы планируете создать, до того, как ваша функция
ready()
Например, если было вызвано «Scene1», объявите:
onready var Scene1 = preload("res://Scene1.tscn")
Затем, позже в вашем коде, когда вы хотите вызвать экземпляр сцены, сделайте это так:
var InstancedScene = Scene1.instance()
add_child(InstancedScene)
// Это просто экземпляры сцены (я Подумайте о координатах (0,0,0)), но вы можете сказать ему, где создать экземпляр, используя следующий пример:
Для 3D используйте:
InstancedScene.transform.origin = Vector3(50.0, 0.0, -50.0)
// Дает позицию x = 50, y = 0, x = -50. Это также можно использовать для поворота, просто укажите transform.basis и задайте аналогичный набор координат Vector3.
ИЛИ для 2D use:
InstancedScene.position = Vector2(100.0, 100.0)
// Это экземпляр объекта 100 пикселей в ширину и 100 пикселей вниз. Саб в любых ценностях, которые вам нужны. Вы также можете указать угол поворота, используя InstancedScene.rotation_degrees = 45
(например, 45 градусов)