前言:
前一段时间尝试用godot添加sprite2d动画时,发现数量太多,一个个添加会很麻烦
于是我尝试去找有没有快捷的方法,但是没有太多相关的技巧分享。
看到csdn上有一个godot 4 通过代码动态生成动画并保存到场景文件,但是和个人的需求还是有些出入,于是参考这个案例,自己编了一个代码。
工程文件:
代码:
@tool
extends EditorScript
func _run():
#建立变量,在此处修改sprite2d图路径
var texturename = "fbody_nude"
var texturepath = "res://素材//%s.png"%texturename
var scenepath = "res://animationplayer.tscn"
var sprite2d = Sprite2D.new()
sprite2d.name = texturename
var animationplayer:AnimationPlayer
var scene
#查重
if (ResourceLoader.exists(scenepath)):
print("场景已存在")
scene = ResourceLoader.load(scenepath)
#打开场景
EditorInterface.open_scene_from_path(scenepath)
animationplayer = get_scene()
#检查精灵图是否重复
if (animationplayer.has_node("%s/%s"%[animationplayer.get_path(),sprite2d.name])):
sprite2d = animationplayer.get_node(texturename)
#精灵图不重复,建立新的精灵图
else:
CreateSprite2d(animationplayer,sprite2d,texturename,texturepath,16,20)
else:
animationplayer = AnimationPlayer.new()
scene = PackedScene.new()
#打开场景
scenepack(scene,animationplayer,scenepath)
EditorInterface.open_scene_from_path(scenepath)
animationplayer =