提供各种DOtween
的Shortcut
扩展方法对应的MonoBehaviour
包装类和Tween
动画在Editor
模式下的预览播放功能。
现只对target
类型为Component
的扩展方法进行了包装,
在AddComponent
列表中按照Component
实际类型分类显示,
方便进行查找。
所有包装类均派生自Animation
泛型类,其泛型参数为target
类型。
自定义包装类时同样只需继承Animation
,实现CreateTween
抽象方法即可。
自定义的包装类的Inspector
同样具有预览按钮。
如下为实现DOMove
的代码
[AddComponentMenu("EasyDOTween/Transform/DOMove")]
public class DOMove : EasyDOTween.Animation<Transform>
{
[SerializeField]
private Vector3 endValue;
[SerializeField]
private bool snapping = false;
protected override Tween CreateTween(Transform target, float duration)
{
return target.DOMove(endValue, duration, snapping);
}
}
每种包装类的Inspector
界面都有预览按钮,
设置好target
或者挂到含有target
对应类别的GameObject
下(此时会将对应的Component
设置为target
),
点击Play
按钮即可在编辑器模式下预览Tween
动画,如下图:
如果可序列化的类(带有Serializable
属性)里含有返回值为Tween
类型的方法,
可在该类型字段的属性列表里加入TweenPreview
属性,
这之后可在Inspector
中看到对应方法名的按钮,
设置好参数后点击即可进行编辑器模式下的预览。
public class Test : MonoBehaviour
{
[SerializeField, TweenPreview]
MoveTo _moveTo;
[Serializable]
class MoveTo
{
[SerializeField]
Vector3 _pos;
[SerializeField]
float _duration;
public Tween PlayMoveX(Transform t)
{
return t.DOMoveX(_pos.x, _duration);
}
public Tween PlayMoveY(Transform t)
{
return t.DOMoveY(_pos.y, _duration);
}
}
}