DOTween-菜鸟初学(一)

最为一款最常用的插件,今天便向大家介绍这款插件。
废话不多说,开始吧
首先对它基础使用的介绍:移动,旋转,缩放

  //移动
        transform.DOMove(new Vector3(0, 4, 0), 5,false);
        transform.DOLocalMove(new Vector3(0, 5, 0), 1);

第一个参数为你要到达的最终地点,第二个参数为所需的时间。第三个参数为控制是否平滑(true,false)一般系统默认为false,当选择为false时,物体平滑到达,如果为true,则会以一个单位进行移动,即从0直接到1,在蹦到2,每次运动+1,最后造成卡顿的效果,注意如果地点目标数据为小数时,它自动变为整数,即3.1变为3,3.6变为4(四舍五入原则)。第二个方法为物体在子对象的移动。
除此之外还有

   //blend
        transform.DOBlendableMoveBy(Vector3.one, 1);

这个为混合模式的移动,当存在两个DOBlendableMoveBy以上时,最后的结果会相加,如果使用DOMove的方法则不会,它会使用最新的方法。

------------------------------------------------------------------------------------------分界线

 //旋转
        transform.DORotate(new Vector3(0, 90, 0), 1,RotateMode.Fast);
        transform.DOLocalRotate(new Vector3(90, 0, 0), 2);
        transform.DORotateQuaternion(new Quaternion(0, 0, 0,1f), 1);

方法使用同上。当然旋转方式默认为RotateMode.Fast。如果想旋转270度这样的,可以添加第三个参数为RotateMode.FastBeyond360。除此外还有RotateMode.LocalAxisAdd,RotateMode.WorldAxisAdd两种,分别为本地和世界作为轴,但会影响原本的方法。如果你本来的物体已经旋转10度了,如果使用后两者方法,最后的结果就会为旋转100度,即在原来的基础上增加了,而不是到达某值。

------------------------------------------------------------------------------------------分界线

//缩放
        transform.DOScale(new Vector3(2, 1, 1), 1);

方法使用同上。不过没有第三个默认参数。

------------------------------------------------------------------------------------------分界线

 //朝向
        transform.DOLookAt(new Vector3(60, 0, 0), 1);

除此外它们还有分别向x,y,z方向运动的方法,这里就不多阐述,因为方法差不多。
简单的使用以上。接下来有趣的便开始吧。

//punch函数
        transform.DOPunchPosition(new Vector3(0, 5, 0), 5, 5, 0.5f);
        transform .DOPunchRotation(new Vector3(0, 5, 0), 5, 5, 0.5f);
        transform .DOPunchScale(new Vector3(0, 5, 0), 5, 5, 0.5f);

这个函数感觉就是在一定范围内修改物体运动参数(第一个方法就是简单的震动),第一个参数为力的矢量,(即表示方向和力的大小,第二个为持续时间,第三个为震动次数,第四个为改变峰值吧(值为(0-1)),如果取值为0,物体不会向与物体一开始位置相反的运动,即原本坐标为(0,0,0),它就不会往力的相反方向震动,如果取值大于0的,则会忘力的反方向运动,且取值的大小还会决定震动的峰值大小。
(最后我想用这个函数来作为相机震动,但感觉效果不怎么好。- -!)

------------------------------------------------------------------------------------------分界线

 //shake函数
        transform.DOShakePosition(2, 5, 5, 100, false, true);
        transform .DOShakeRotation(2, 5, 5, 100, true);
        transform .DOShakeScale(2, 5, 5, 100, true);

这个函数跟上面差不多,不过是运动随机的,即随机向某个方向运动变化,第一个参数为时间(它居然被放在第一位了,呵呵),第二个为力的大小(决定你的变化幅度),第三个为频率,后面几个没有什么用,可有可无,
第一个方法的中第一个bool值为控制是否平滑,第二个为设置是否淡入淡出,其它两个方法则只有控制淡入淡出的。
------------------------------------------------------------------------------------------分界线

然后开始对材质的研究:

DOColor(颜色为,浮动持续时间)
DOColor(颜色为,字符串属性,浮动持续时间)
DOColor(颜色为,int propertyID,浮动持续时间)
DOFade(浮动到,浮动持续时间)
DOFade(浮动到,字符串属性,浮动持续时间)
DOFade(浮动到,int propertyID,浮动持续时间)
DOFloat(浮动到,字符串属性,浮动持续时间)
DOFloat(float to,int propertyID,float duration)
DOGradientColor(渐变为,浮动持续时间)
DOGradientColor(渐变为,字符串属性,浮动持续时间)
DOGradientColor(渐变为,int propertyID,浮动持续时间)
DOOffset(Vector2至,浮动持续时间)
DOOffset(Vector2至,字符串属性,浮动持续时间)
DOOffset(Vector2 to,int propertyID,float duration)
DOTiling(Vector2至,浮动持续时间)
DOTiling(Vector2 to,字符串属性,浮动持续时间)
DOTiling(Vector2 to,int propertyID,浮动持续时间)
DOVector(Vector4至,字符串属性,浮动持续时间)
DOVector(Vector4至,int propertyID,浮动持续时间)

//材质
        Material m = transform.GetComponent<MeshRenderer>().material;
        m.DOColor(Color.red,"_Color", 2);

对于材质颜色的修改,一定要注意你的材质shader中颜色的名称,一般系统默认为_Color,有些其它的shader中颜色的名称不是这个,所以要在代码中修改,一定要注意。

  //透明
        m.DOFade(0, 2);
  //渐变
        m.DOGradientColor(gradient, 2);

剩下就是修改texture的tiling,offset的。操作依旧。
当然它也有混合模式即相加的
DOBlendableColor(颜色为,浮动持续时间)
DOBlendableColor(颜色为,字符串属性,浮动持续时间)
DOBlendableColor(颜色为,int propertyID,浮动持续时间)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值