DoTween渐变动画

一、Blend

        //Blend
        //区别于普通move 此方法是在物体原来的位置做相应操作
        //混合执行
        transform.DOBlendableLocalMoveBy(Vector3.one, 2f);
        transform.DOBlendableLocalMoveBy(-Vector3.one * 2, 2f);
        //以上语句执行后 物体在-Vector3.one 位置上
        transform.DOBlendableLocalRotateBy(Vector3.one, 2f);
        //....

二、Materal

        //Material
        Material material = GetComponent<MeshRenderer>().material;
        //颜色
        material.DOColor(Color.red, 2f);//默认是材质里的Main color属性
        material.DOColor(Color.red, "_Tint", 2f);//在材质里点编译 查看颜色所对应的属性 第二个参数上
        material.SetColor("_Tint", Color.green);//material默认的设置颜色 也是传属性名字

        //透明度
        material.DOColor(Color.clear, "_Tint", 2);
        material.DOFade(0, "_Tint", 2);

        //渐变
        material.DOGradientColor(gradient, "_Tint", 2f);

        //万能 根据给的属性名进行操作
        material.DOVector(Color.red, "_Tint", 2f);

        //颜色混合
        material.DOBlendableColor(Color.red, "_Tint", 2f);
        material.DOBlendableColor(Color.green, "_Tint", 2f);

三、camera


        //camera
        Camera camera = GetComponent<Camera>();
        //改变相机的宽高比 第一个参数
        camera.DOAspect(0.5f, 2f);
        //背景颜色
        camera.DOColor(Color.yellow, 2f);
        //横截面
        camera.DONearClipPlane(26f, 2f);
        //相机的两种模式 透视投影和正交投影 

        //透视投影下的FieldOfView属性(就是摄像机那个张开的角度) 放大缩小图像
        camera.DOFieldOfView(50f, 2f);
        //正交投影下的FieldOfView属性 放大缩小图像  size越小图像越大
        camera.DOOrthoSize(2f, 2f);

        //摄像机分屏效果实现

        //像素实现 前面两个是坐标 后面是宽高 
        camera.DOPixelRect(new Rect(0, 0,360,540), 2f);
        //百分比实现 前面两个是坐标 后面是宽高百分比
        camera.DORect(new Rect(0,0,0.5f,0.5f), 2f);

        //震动效果 
        camera.DOShakePosition(2, 20, 10);

四、Text

        //Text
        Text text=GetComponent<Text>();
        //一个字一个字显示 默认先快后慢
        text.DOText("刘子奇爱吃屎吃屎吃屎", 3f);
        //平滑显示
        text.DOText("刘子奇爱吃屎吃屎吃屎", 3f).SetEase(Ease.Linear);

五、Sequence

 //Sequence 队列
        //初始化
        Sequence sequence = DOTween.Sequence();
        //添加
        sequence.Append(transform.DOMove(Vector3.one, 2));

        sequence.AppendCallback(AppendCallback);
        //停一秒后再移动
        sequence.AppendInterval(1);

        sequence.Append(transform.DOMove(new Vector3(1, 0, 0), 2));
        //join   和上一条Append语句同时执行
        sequence.Join(transform.DOScale(Vector3.one, 2));

        //insert  
        //第一个参数是插入动画的时间 要从0.00...开始才能替代而不是0 !
        //若和之前Append进来的动画时间重合 则会直接替代   
        sequence.Insert(0.00001f, transform.DOMove(-Vector3.one, 2));
        sequence.Join(transform.DOScale(Vector3.one * 2, 2));
        //也可以在动画时间线之外添加动画
        sequence.Insert(6, transform.DOMove(-Vector3.one * 2, 2));

        sequence.Insert(0, transform.DOScale(Vector3.one * 2, 2));
        sequence.Insert(3, transform.DOScale(Vector3.one, 2));

        //Prepend 在所有Append方法之前执行
        sequence.PrependInterval(1);
        sequence.Prepend(transform.DOMove(-Vector3.one, 2));
        sequence.PrependCallback(PrependCallback);  
        //回调函数  三种 Sequence自带的回调  预回调  Append的回调
        sequence.InsertCallback(8, insertCallback);

六、设置参数

 //设置参数
        transform.DOMove(Vector3.one, 2).SetLoops(-1, LoopType.Incremental);

        //Form 从目标点移动到物体原本的位置
        //bool参数代表是否表示相对位置  
        transform.DOMove(Vector3.one, 2).From(true);

        //以速度为基准运动
        transform.DOMove(Vector3.one, 2).SetSpeedBased();

        //设置ID 回收 相对运动
        transform.DOMove(Vector3.one, 2).SetId("ID");
        DOTween.Play("ID");

        //激活回收(SetRecyclable),DOTween会缓存你创建的对象,以便它能够得到重复利用而不需要重新创建。
        transform.DOMove(Vector3.one, 2).SetRecyclable(true);

        transform.DOMove(Vector3.one, 2).SetRelative();

七、运动曲线

 public AnimationCurve _curve;
    void Start()
    {
        transform.DOMove(Vector3.one, 3).SetEase(_curve);


    }

1.5代表物体位置和目标位置距离 p 的倍数  即物体运动 p*1.5

八、回调方法

  //restart remind doflip dobackwards 动画重新调用时调用
        transform.DOMove(Vector3.one, 3).OnRewind();
        //循环里面每执行一次 调用一次 区别与OnComplete
        transform.DOMove(Vector3.one, 3).OnStepComplete();

九、获取动画

	void Start () {

        transform.DOMove(Vector3.one, 2);

		var list = DOTween.TweensById("ID", true);
		// 第一个参数是动画对象  bool值表示当前对象正在执行的动画
        var list2 = DOTween.TweensByTarget(transform, true);
    }

十、动画状态和属性

       var tweener= transform.DOMove(Vector3.one, 2).SetLoops(3);
		//返回动画的延后调用时间
		tweener.Delay();
        //返回动画的持续时间 bool值表示是否包含循环
        tweener.Duration(true);
		//动画目前经历的时间
		print(tweener.Elapsed(true));
		//针对单次循环 返回这段动画当前时间的所占时间的百分比
		tweener.ElapsedDirectionalPercentage();
		//带参数 对循环
		tweener.ElapsedPercentage();

十一、路径动画  ....

		//路径动画 
		transform.DOPath(listPosition, 5, PathType.Linear, PathMode.Full3D, 10, Color.red)
			.SetOptions(true,AxisConstraint.None,AxisConstraint.Y)
			.SetLookAt(new Vector3(0, 0, 0));

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值