unity-七(DoTween)

DoTween的下载

在Unity项目中找到Windows选择Asset Store。
在这里插入图片描述
之后将会跳转到Unity商店, 搜索Dotween, 选择一个免费的Dotween插件(也可以选付费的,看个人需求)加入我的资源(需要登陆)之后下载完成后导入Unity中。
在Unity的Project中会出现Plugin和Resource两个文件则导入成功。
在这里插入图片描述

DoTween的使用

用代码实现Dotween的使用:先创建一个Cube物体,然后加上脚本。
在这里插入图片描述
在写代码时要注意要加上using DG.Tweening;的命名空间。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

移动(Move)



 //对物体进行移动,前一个参数是坐标,后一个是时间
  transform.DOMove(new Vector3(1,1,1),2);//世界坐标,将物体移动到1,1,1 用时2s
  transform.DOLocalMove(new Vector3(1, 1, 0), 2);//局部坐标
  transform.DOMoveX(1,2);//只对X轴移动
  transform.DOMoveY(2,2);//只对Y轴移动
  transform.DOMoveZ(2,2);//只对Z轴移动
//另一种移动方式
  transform.DOMove(Vector3.one,2);//将物体移动到1,1,1,Vector3.one*2是可以将移动距离*2

旋转(Rotate)

transform.DORotate(new Vector3(0,90,0),2);//对物体进行旋转改变角度Vector3(0,90,0)是绕Y轴旋转90°
transform.DORotateQuaternion(new Quaternion(0.1f,0.1f,0.1f,0.1f),2);    //以四元数的方式进行旋转

缩放(Scale)

      //对物体的大小进行缩放
        transform.DOScale(new Vector3(2, 2, 2), 2);//对物体进行缩放X,Y,Z同时在2s内放大二倍;
        transform.DOScaleX(2,2);//仅X轴缩放二倍
        transform.DOScaleY(2,2);//仅Y轴缩放二倍
        transform.DOScaleZ(2,2);//仅Z轴缩放二倍

弹动(Punch)


        //第一个参数是施加力的大小和方向
        //第二个参数是持续时间
        //第三个是震动频率
        //第四的值为0到1,如果为0,就是在起始点到目标点之间运动;不为0时,会把你赋的值乘上一个参数,作为你运动方向反方向的点,物体在这个点和目标点之间运动。注:可以看成弹簧
      transform.DOPunchPosition(new Vector3(0, 10, 0), 5, 5, 0.1F);//位移,在Y轴像弹簧一样弹动
      transform.DOPunchRotation(new Vector3(0,90,0),2,2,0.1f);//旋转,
      transform.DOPunchScale(new Vector3(3, 0, 0), 2, 2, 0.1f);//缩放,缩放的弹动

震动(Shake)

//第一个参数是持续时间
//第二个参数是施加力的大小和方向
//第三个是震动频率
//第四个是震动的随机性(可以不添加)
 transform.DOShakePosition(3,new Vector3(0,2,0),2);//在Y轴方向3s内震动2次距离为2
 transform.DOShakeScale(2,new Vector3(3,0,0),1,90);
 transform.DOShakeRotation(2,new Vector3(90,0,0),1);
 //震动与弹动相似但又有不同,弹动像弹簧一样弹,震动是来回震。

增量(Blend)
在上述使用的同类函数中只能同时运行一个,如果写多个同类函数那就运行最后一个,因为后一个函数会把前一个覆盖。

 transform.DOScale(new Vector3(2, 2, 2), 2);
 transform.DOScale(new Vector3(0, 2, 2), 2);

这些同类函数只能运行 transform.DOScale(new Vector3(0, 2, 2), 2)
但Blend可以实现同类函数的相加。

  transform.DOBlendableMoveBy(new Vector3 (0,2,0),2);//在原位置的基础上进行增加
  transform.DOBlendableMoveBy(new Vector3(2, 0, 0), 2);
  //Blend相当于向量的相加
  transform.DOBlendableScaleBy(new Vector3(0, 2, 0), 2);//缩放增加
  transform.DOBlendablePunchRotation(new Vector3(0, 90, 0), 2, 2, 0.1f);//弹动相加

材质(Material)
DoTween插件可以改变物体的材质,所以首先必须给物体附上材质。

public Gradient gradient;
  Material material = GetComponent<MeshRenderer>().material;//得到材质组件
  material.DOColor(Color.red,2);//改变物体的颜色为红色时间2s
  material.DOColor(Color.clear,2);//改变材质透明度
  material.DOFade(1,2);//改变材质透明度的另一方式
  material.DOGradientColor(gradient,2);//材质颜色渐变,必须声明Gradient组件
  material.DOBlendableColor(Color.red, 2);
  material.DOBlendableColor(Color.blue, 2);//颜色混合

相机(Camera)
在写相机的代码之前,脚本应该赋给相机,将Cube上的脚本删除否则会报错。

   Camera camera = GetComponent<Camera>();//得到相机组件
   camera.DOAspect(1,2);//改变相机的宽高比,(1,2)2s内宽高比变为1:1
   camera.DOColor(Color.green,2);//改变相机的背景颜色
   camera.DONearClipPlane(3,2);//改变相机的近切面
   camera.DOFarClipPlane(30,0.1f);//改变相机的远切面
   camera.DOFieldOfView(30,2);//相机视野,可用于游戏中的倍镜
   camera.DOOrthoSize(3,1);//用于相机正交视野的大小;正交视野:2D图形下相机的视野
   camera.DOPixelRect(new Rect(0,0,360,540),2);//相机的分辨率前两个数值是相机的位置,后两个数值是相机的分辨率;可以用于屏幕的分屏
   camera.DORect( new Rect(0.5f,0.5f,0.5f,0.5f),2);//百分比形式将相机缩小
   camera.DOShakePosition(1,10,10);//相机抖动三个参数是:时间,震动力量,震动次数
   

在这里插入图片描述
在这里插入图片描述
屏幕分屏效果
在这里插入图片描述
文本(Text)

    Text text = GetComponent<Text>();
    text.DOBlendableColor(Color.red,2);//混合颜色
    text.DOText("qqqqqqq", 2);//让文本中的内容一个一个显示,text.DOText("qqqqqqq",5).SetEase<Ease.Linear>;//让文本内容均速显示
    text.DOText("qqqqqqq", 2).SetEase(Ease.Linear);
    text.DOFade(0.5F,2);
    text.DOBlendableColor(Color.blue,2);
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以回答你关于UnityDOTween插件的问题。 首先,DOTween插件是用于制作Tween动画的工具,可以轻松地创建动画效果。下面是回答你的问题: 1. 设置参数 在使用DOTween插件创建Tween动画时,可以设置很多不同的参数,如持续时间、延迟时间、循环次数等。这些参数可以通过Tween对象的方法进行设置,例如: ```csharp //创建一个Tween对象 var tween = transform.DOMove(Vector3.zero, 1f); //设置Tween对象的参数 tween.SetDelay(0.5f); //设置延迟时间为0.5秒 tween.SetLoops(-1, LoopType.Yoyo); //设置无限循环,并且在每次循环结束时反转Tween对象的运动方向 ``` 2. Ease曲线 Ease曲线是用于控制Tween动画的运动方式,可以使Tween对象的运动变得更加平滑或者更加突然。DOTween插件提供了很多内置的Ease曲线,也可以自定义Ease曲线。在创建Tween对象时,可以通过传递Ease曲线的枚举值或者自定义的Ease曲线函数来设置Tween对象的Ease曲线,例如: ```csharp //使用Ease枚举值设置Tween对象的Ease曲线 var tween = transform.DOMoveX(5f, 1f).SetEase(Ease.InOutQuad); //设置Tween对象的Ease曲线为InOutQuad //使用自定义Ease曲线函数设置Tween对象的Ease曲线 var tween = transform.DOMoveX(5f, 1f).SetEase((t) => Mathf.Lerp(0f, 1f, t)); //设置Tween对象的Ease曲线为自定义的线性插值函数 ``` 3. 回调函数 回调函数是在Tween动画运动到指定位置或者完成一次循环时调用的函数。可以通过Tween对象的OnComplete、OnStepComplete、OnKill等方法设置Tween对象完成时需要调用的回调函数,例如: ```csharp //设置Tween对象完成时需要调用的回调函数 var tween = transform.DOMoveX(5f, 1f).OnComplete(() => Debug.Log("Tween completed!")); //设置Tween对象完成时需要输出日志信息 //设置Tween对象每次循环完成时需要调用的回调函数 var tween = transform.DOMoveX(5f, 1f).SetLoops(2).OnStepComplete(() => Debug.Log("Tween loop completed!")); //设置Tween对象每次循环完成时需要输出日志信息 ``` 4. 动画控制函数 动画控制函数是用于控制Tween动画的播放、暂停、重置等操作的函数。可以通过Tween对象的Play、Pause、Rewind等方法进行动画控制,例如: ```csharp //播放Tween动画 var tween = transform.DOMoveX(5f, 1f); tween.Play(); //播放Tween动画 //暂停Tween动画 var tween = transform.DOMoveX(5f, 1f); tween.Pause(); //暂停Tween动画 //重置Tween动画 var tween = transform.DOMoveX(5f, 1f); tween.Rewind(); //重置Tween动画 ``` 以上就是关于DOTween插件设置参数、Ease曲线、回调函数、动画控制函数的介绍,希望能够对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值