MENU

【Godot】スクリプト内で別のシーンを呼び出す方法

記事内に商品プロモーションが含まれる場合があります

別のシーンをスクリプト内で読み込むには、PackedScene クラスを使用します。

手順としては次のとおりです。

  • 別のシーンをロードする
  • ロードしたシーンをインスタンス化して追加する
目次

別のシーンを呼び出す例

extends Node

# 別のシーンのパス
const OTHER_SCENE_PATH = "res://scenes/other_scene.tscn"

# 別のシーンをロードする変数
var other_scene: PackedScene

func _ready():
    # ① 別のシーンをロードする
    other_scene = load(OTHER_SCENE_PATH)

    # ② ロードしたシーンをインスタンス化して追加する
    var instance = other_scene.instance()
    add_child(instance)

まず、load() メソッドを使用して別のシーンをロードします。

このメソッドは、プロジェクト内のパスを引数として受け取ります。例えば、”res://scenes/other_scene.tscn” のような形式です。

load() メソッドは PackedScene オブジェクトを返すので、これを変数に格納します。上記の例で言うとother_scene = load(OTHER_SCENE_PATH)の箇所です。

ロードしたシーンを使いたいタイミングで、PackedScene オブジェクトの instance() メソッドを呼び出してシーンをインスタンス化します。これにより、シーン内のノードツリーが作成されます。

別の方法:@exportアノテーションを使うやり方

@exportアノテーションを使うことで、インスペクタから別シーンを取り込めるので、こちらを使うとコード量が減ります。

extends Node

@export var other_scene: PackedScene

func _ready():
    # シーンをインスタンス化して追加する
    var instance = other_scene.instance()
    add_child(instance)

インスペクタからother_sceneに読み込みたいシーンをセットしてください。

Share

Comment

コメントする

目次