欢迎使用CSDN-markdown编辑器

来源:互联网 发布:朴宰范和2pm知乎 编辑:程序博客网 时间:2024/05/29 17:52

DoTween 模仿NGUI TweenPosition

public Vector3 Form;    public Vector3 To;    public float   MoveTime=1f;    Transform my;    Transform myTransform {        get {            if (my == null)                my = transform;            return my;        }    }    Vector3 position {        get {            return myTransform.position;        }    }    public override void DoStart() {        PlayForward();       }    // 播放动画    public void PlayReverse() {        myTransform.position = To;        StyleFunction(this.To, this.Form);    }    public void PlayForward() {        myTransform.position = Form;        StyleFunction(this.Form, this.To);    }    // 动画的播放方式    void StyleFunction(Vector3 From, Vector3 To) {        switch (style) {            case Style.Once:                One(From, To);                break;            case Style.Loop:                Loop(From, To);                break;            case Style.Repeatedly:                Repeatedly(From, To);                break;            case Style.PingPong:                PingPong(From, To);                break;        }    }    // 动画播放实现    void One(Vector3 From, Vector3 To) {        myTransform.DOMove(To, MoveTime);    }    void Repeatedly(Vector3 From,Vector3 To) {        myTransform.DOMove(To, MoveTime).OnComplete(() => myTransform.DOMove(Form, MoveTime));    }    void Loop(Vector3 From, Vector3 To) {        myTransform.position = From;        myTransform.DOMove(To, MoveTime).OnComplete(() => Loop(Form, To));    }    void PingPong(Vector3 From, Vector3 To) {        myTransform.DOMove(To, MoveTime).OnComplete(() => PingPong(To, From));    }    public override void StartMoveFormPosition() {        Form = this.position;    }    public override void EndMoveToPosition() {        To = this.position;    }    //void Reset() {    // 这个方法是在脚本挂在游戏物体的时候 或者 重置的时候调用    //  }

0 0