有没有办法播放从另一个场景导出的动画?

Is there a way to play an animation that one has exported from another scene?

我目前正在为 Godot 中的 2D 竞技场 wave 生成​​器游戏开发敌人生成器。

我有一个 export(resource) 变量,允许我将生成动画插入到场景中。

我的问题是:如何播放上述动画?

我在我的代码中创建了注释来解释它是如何设置的。我认为可以解决的两种可能方法是

  1. 在我评论的地方插入一个函数,它采用先前确定的位置值并在这些坐标处播放该动画。但是我不知道如何将动画作为导出(资源)变量播放。
  2. 播放动画不是使用位置值的函数...但它仍然是同一个问题。

谢谢!

extends Node2D

export(NodePath) var node_path

const WIDTH = 254
const HEIGHT = 126
export(Resource) var ENEMY
export(Resource) var SPAWNANIMATION

var spawnArea = Rect2()
var delta = 3
var offset = 0.5

#Creates the spawnArea and randomizes positions for the enemy to spawn
func _ready():
    randomize()
    spawnArea = Rect2(0, 0, WIDTH, HEIGHT)
    setnextspawn()

#Spawns an Enemy at said Random position
func spawnEnemy():
    var position = Vector2(randi()%WIDTH, randi()%HEIGHT)
    var enemy = ENEMY.instance()
    enemy.position = position #Determined position
    #EnemySpawningAnim(position)
    get_node(node_path).add_child(enemy)
    return position

#Spawn Timer for in between each enemy spawn
func setnextspawn():
    var nextTime = delta + (randf()-0.5) * 2 * offset
    $Timer.wait_time = nextTime
    $Timer.start()

func _on_Timer_timeout():
    spawnEnemy()
    setnextspawn()

#Function that takes a position to play the animation at
func EnemySpawningAnim(position):
    pass

_ready() 时,您将需要一个 AnimationPlayer 节点作为您 add_animation() 的资源。这是一个代码示例:

func _ready():
    $AnimationPlayer.add_animation('spawn', SPAWNANIMATION)

func EnemySpawningAnim(position):
    # ... logic to handle position
    $AnimationPlayer.play('spawn')