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 的默认过渡类型。