如何以编程方式将动画.tres添加到动画播放器(gui工具)?

问题描述 投票:0回答:1

是否可以通过编程方式同时将动画.tres加载到动画播放器(gui工具)?我知道动画是资源,我确实阅读了一些 godot 文档,但没有找到与“加载到动画播放器工具(gui)”相关的任何内容。我在 FilSystem (res://...) 中有很多动画(.tree 文件扩展名),如果可能的话,我想以编程方式加载或添加它们到动画播放器工具中。

为了澄清,我也附上了动画播放器的加载按钮的图像(gui)。我想使用这种加载方式,但如果可能的话以编程方式进行。

animation tooltip gdscript godot3
1个回答
0
投票

你不知道。

动画面板(你所说的“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)
© www.soinside.com 2019 - 2024. All rights reserved.