是否可以通过编程方式同时将动画.tres加载到动画播放器(gui工具)?我知道动画是资源,我确实阅读了一些 godot 文档,但没有找到与“加载到动画播放器工具(gui)”相关的任何内容。我在 FilSystem (res://...) 中有很多动画(.tree 文件扩展名),如果可能的话,我想以编程方式加载或添加它们到动画播放器工具中。
为了澄清,我也附上了动画播放器的加载按钮的图像(gui)。我想使用这种加载方式,但如果可能的话以编程方式进行。
你不知道。
动画面板(你所说的“AnimationPlayer工具(gui)”)是用来编辑
AnimationPlayer
节点的,没有API来操作它。
您也许可以破解它,请参阅覆盖AnimationPlayer函数。但如果正在编辑的
AnimationPlayer
没有动画,那就没有用了。
因此,您要做的就是将
Animation
添加到正在动画面板中编辑的 AnimationPlayer
。
如果你正在写一个
EditorPlugin
,你会接到一个对_handles
的调用来检查它是否可以处理Node
,这样你就可以实现它来告诉Godot你的EditorPlugin
处理AnimationPlayer
:
func _handles(object:Object) -> bool:
return object is AnimationPlayer
然后您会接到电话
_edit
:
var edited_animation_player:AnimationPlayer = null
func _edit(object:Object) -> void:
var animation_player := object as AnimationPlayer
if is_instance_valid(animation_player):
edited_animation_player = animation_player
这样您就可以引用当前编辑的
AnimationPlayer
,它在动画面板中应该是相同的。
要将动画添加到
AnimationPlayer
,您需要获取一个 AnimationLibrary
(从 AnimationPlayer
获取一个或添加一个新的)并对其调用 add_animation
。 默认AnimationLibrary
名称为空)。
例如:
var animation_library = animation_player.get_animation_library("")
animation_library.add_animation(animation_name, animation)