extends Control

    # 各種シグナルをスクリプトに接続する
    func _enter_tree():
        SceneLoader._scene_loading.connect(_on_scene_loading.bind())
        SceneLoader._loaded_scene.connect(_on_loaded_scene.bind())
        SceneLoader._scene_load_error.connect(_on_scene_load_error.bind())
    
    # シーンローダーのプロセスを毎フレーム呼び出す
    func _process(delta):
        SceneLoader.process(delta)
    
    # 各種シグナルをスクリプトから解除する
    func _exit_tree():
        SceneLoader._scene_loading.disconnect(_on_scene_loading.bind())
        SceneLoader._loaded_scene.disconnect(_on_loaded_scene.bind())
        SceneLoader._scene_load_error.disconnect(_on_scene_load_error.bind())
    
    # ロード中の表示
    func  _on_scene_loading(p):
        # ローディング中の画面表示を更新
        $Label.text = "Loading... %d" % [int(p * 100)]
    
    # ロードが完了したときに呼ばれるメソッド        
    func _on_loaded_scene(scene):
        # 画面遷移
        get_tree().change_scene_to_packed(scene)

    # エラーの場合に呼ばれるメソッド   
    func _on_scene_load_error(error_type):
        # エラーの場合の表示
        print ('error:' + str(error_type))