写完《Godot特效:刀光(三)着色器及代码部分 方法一》,发现有点麻烦。要通过GDScript旋转然后把值通过uniform
传递到Shader中,与其如此直接旋转模型,岂不是更简单。
所以把上文的方法修改了一下,材质直接用自带的SpatialMaterial
代码比以前更简单了
extends MeshInstance
#var material:Material
var tween : Tween
export var init_degree :float = 0
export var final_degree :float = 90
export var duration:float = 0.2
func _ready():
tween = Tween.new()
add_child(tween)
tween.connect("tween_all_completed",self,"hide")
hide()
func play():
show()
tween.interpolate_property(self,"rotation_degrees",Vector3(0,init_degree,0),Vector3(0,final_degree,0),duration,Tween.TRANS_LINEAR,Tween.EASE_IN)
tween.start()
参数
这样直接调节初始角度和最终角度更加直观了