Skip to content

fanhexin/EasyDOTween

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EasyDOTween

提供各种DOtweenShortcut扩展方法对应的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);
        }
    }
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages