Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
PropertyTweener
继承: Tweener < RefCounted < Object
随时间对 Object 的属性进行插值。
描述
PropertyTweener 用于为对象的属性进行插值。详见 Tween.tween_property()。
目标对象被释放时,补间器会自动结束。
注意:Tween.tween_property() 是创建 PropertyTweener 的唯一正确方法。任何手动创建的 PropertyTweener 都将无法正常运行。
方法
set_custom_interpolator(interpolator_method: Callable) |
|
set_trans(trans: TransitionType) |
方法说明
PropertyTweener as_relative() 🔗
调用后会将最终值用作相对值。
示例:将节点向右移动 100
像素。
var tween = get_tree().create_tween()
tween.tween_property(self, "position", Vector2.RIGHT * 100, 1).as_relative()
Tween tween = GetTree().CreateTween();
tween.TweenProperty(this, "position", Vector2.Right * 100.0f, 1.0f).AsRelative();
PropertyTweener from(value: Variant) 🔗
为 PropertyTweener 设置自定义初始值。
示例:将节点从 (100, 100)
移动到 (200, 100)
。
var tween = get_tree().create_tween()
tween.tween_property(self, "position", Vector2(200, 100), 1).from(Vector2(100, 100))
Tween tween = GetTree().CreateTween();
tween.TweenProperty(this, "position", new Vector2(200.0f, 100.0f), 1.0f).From(new Vector2(100.0f, 100.0f));
PropertyTweener from_current() 🔗
让 PropertyTweener 使用属性的当前值(即创建 PropertyTweener 时)作为起点。等价于使用当前值调用 from()。下列两种调用效果相同:
tween.tween_property(self, "position", Vector2(200, 100), 1).from(position)
tween.tween_property(self, "position", Vector2(200, 100), 1).from_current()
tween.TweenProperty(this, "position", new Vector2(200.0f, 100.0f), 1.0f).From(Position);
tween.TweenProperty(this, "position", new Vector2(200.0f, 100.0f), 1.0f).FromCurrent();
PropertyTweener set_custom_interpolator(interpolator_method: Callable) 🔗
使用自定义缓动函数进行插值。会使用 0.0
到 1.0
之间的值来调用 interpolator_method
,提供的这个方法的返回值应该也在这个范围内(可以用超出范围的值表示越过目标)。后续会再使用这个方法的返回值进行起始值和目标值之间的插值。请注意,传给这个方法的参数仍然会受到补间器本身缓动功能的影响。
@export var curve: Curve
func _ready():
var tween = create_tween()
# 使用自定义曲线进行插值。
tween.tween_property(self, "position:x", 300, 1).as_relative().set_custom_interpolator(tween_curve)
func tween_curve(v):
return curve.sample_baked(v)
[Export]
public Curve Curve { get; set; }
public override void _Ready()
{
Tween tween = CreateTween();
// 使用自定义曲线进行插值。
Callable tweenCurveCallable = Callable.From<float, float>(TweenCurve);
tween.TweenProperty(this, "position:x", 300.0f, 1.0f).AsRelative().SetCustomInterpolator(tweenCurveCallable);
}
private float TweenCurve(float value)
{
return Curve.SampleBaked(value);
}
PropertyTweener set_delay(delay: float) 🔗
设置该 PropertyTweener 开始插值的时间,单位为秒。默认无延迟。
PropertyTweener set_ease(ease: EaseType) 🔗
设置所使用的缓动类型 EaseType。如果没有设置,则使用包含这个 Tweener 的 Tween 的默认缓动类型。
PropertyTweener set_trans(trans: TransitionType) 🔗
设置所使用的过渡类型 TransitionType。如果没有设置,则使用包含这个 Tweener 的 Tween 的默认过渡类型。