我该怎么在godot中调用spine中设置的音频事件?
我该怎么在godot中调用spine中设置的音频事件?
我该如何在代码中访问spine的设定的音频事件?
在代码中访问Spine的音频事件可以通过监听SpineSprite
节点的animation_event
信号来实现。animation_event
信号会在用户定义的事件(包括音频事件)发生时触发。你可以连接这个信号到一个函数,并在该函数中处理音频事件。
以下是一个简单的示例,展示如何在Godot中使用GDScript监听animation_event
信号:
extends SpineSprite
func _ready():
# 连接 animation_event 信号到 _on_animation_event 函数
connect("animation_event", self, "_on_animation_event")
# 处理 animation_event 信号的函数
func _on_animation_event(track_index, event):
if event.data.name == "your_audio_event_name":
# 在这里处理音频事件,例如播放音频
print("Audio event triggered: ", event.data.name)
在这个示例中,your_audio_event_name
应该替换为你在Spine中定义的音频事件的名称。当该事件被触发时,_on_animation_event
函数会被调用,你可以在其中添加播放音频的逻辑。
感谢你,但是他还是报错
Please see the example here:
EsotericSoftware/spine-runtimesblob/4.2/spine-godot/example/examples/02-animation-state-listeners/animation-state-listeners.gd#L20-L23
Spinebot was close but you want event.get_data().get_event_name()
:
func _animation_event(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry, event: SpineEvent):
print("Animation event: " + track_entry.get_animation().get_name() + ", " + event.get_data().get_event_name())
if (event.get_data().get_event_name() == "footstep"):
footstep_audio.play()
Merged 5 posts from 我该如何在代码中访问spine的设定的音频事件?.
非常的感谢你,我的朋友,祝你度过愉快的一天 !