DoTween的部分方法解析

DoTween的各种使用方法有点多,本人只试用了几种比较常用的,后续项目中如果需要用到更多再补吧。详细内容上官网看http://dotween.demigiant.com/documentation.php。

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

public class DoTweenTest : MonoBehaviour {
    public Transform Target;
    private Vector3 RotationTarget = Vector3.one;
    private Quaternion QuaternionTarget = Quaternion.identity;
    private Vector3 ScaleTarget = new Vector3(12,12,12);
	
    void TweenMove()
    {
        //让物体向目标点移动
        // 参数一(vector3): 目标点坐标 参数二(float):移动所花时间
        //参数三(bool):若为true则在移动过程中物体的坐标被强制为整数,表现的效果就是非平滑移动,默认flase
        // transform.DOMove(Target.position, 5,true);

        //让物体X坐标的值向目标值变化
        // 参数一(vector3): 目标值 参数二(float):移动所花时间
        //参数三(bool):若为true则在移动过程中物体的X坐标被强制为整数,表现的效果就是非平滑移动,默认flase
        //transform.DOMoveX(1,5,true);

        //transform.DOMoveY原理同上

        //transform.DOMoveZ原理同上

        //除了改变的是localPosition外,原理同上
        // transform.DOLocalMove(Target.position,5);
        //transform.DOLocalMoveX(1,5);
        // transform.DOLocalMoveY
        // transform.DOLocalMoveZ
    }
    void TweenRotate()
    {
        //在给定的时间里旋转到指定的角度(世界)
        // transform.DORotate(RotationTarget,3,RotateMode.Fast);
        //在给定的时间里旋转到指定四元素(世界)
        //transform.DORotateQuaternion(QuaternionTarget,3);
        // transform.DOLocalRotate(局部)
        //transform.DOLocalRotateQuaternion(局部)
        //在给定的时间里让自身Z轴方向指向目标,平滑转动
        //transform.DOLookAt(Target.position,3);
    }
    void TweenScale()
    {
        //在给定的时间里伸缩到指定的比例
        //transform.DOScale(ScaleTarget,3);
        //X、Y、Z方向上的伸缩
       // transform.DOScaleX
      // transform.DOScaleY
       //transform.DOScaleZ 
    }
    void TweenPunch()
    {
        //模拟类似弹簧的运动
       // Vector3 direction = Target.position - transform.position;
      // transform.DOPunchPosition(direction,2,2,0.1f);
    }
    void TweenShake()
    {
        //模拟位置随机震动效果
        //参数1:震动时间;参数2:震动幅度;参数3:震动次数;参数4:改变震动方向的随机值
        //参数5:是间断性运动还是平滑性运动;参数6:是否选择淡出效果
        // transform.DOShakePosition(2,10,8,120,false,true);
        //模拟角度随机震动效果
        // transform.DOShakeRotation(2,5,6,90,true);
        //模拟尺寸随机震动效果
        // transform.DOShakeScale(2,10,8,90,true);
    }
    void TweenCamera()
    {
        Camera myCamera = Camera.main;
        //摄像机可视范围的宽高比
        // myCamera.DOAspect(0.5f,2);
        //摄像机background颜色
        // myCamera.DOColor(Color.red,2);
        //摄像机近切面值
        // myCamera.DONearClipPlane(2,2);
        //摄像机远切面值
        // myCamera.DOFarClipPlane(1200,3);
        //摄像机field of view值
        //myCamera.DOFieldOfView(80,2);
        //正交摄像机的size
        //myCamera.DOOrthoSize(5,2);
        //摄像机颤动效果
        // myCamera.DOShakeRotation(2,10,10,10,false);
    }
    void TweenLight()
    {
        Light myLight = GameObject.Find("Directional Light").GetComponent<Light>();
        //光的颜色变化
        //myLight.DOColor(Color.cyan,2);
        //光纤强度变化
       // myLight.DOIntensity(4,2);
    }
    void TweenMaterial()
    {
        Material myMaterial = Target.GetComponent<MeshRenderer>().material;
        //改变颜色
        // myMaterial.DOColor(Color.cyan,3);
        //改变shader颜色属性值
        // myMaterial.DOColor(Color.gray,"_Color",3);
        //改变材质offset值
        // myMaterial.DOOffset(new Vector2(0,8),3);
        //改变材质tiling值
        // myMaterial.DOTiling(new Vector2(2,2),3);
        //改变shader属性中vector4的值
       // myMaterial.DOVector(new Vector4(0,0,0,0),"_Color",3);
    }
    void TweenText()
    {
        Text myText = GameObject.Find("Text").GetComponent<Text>();
        //UI文本出现方式,在一定时间内让文本一个字一个字出来
        //myText.DOText("A B C D E F G H T Y",10,true,ScrambleMode.None);
        //文本渐隐效果
       // myText.DOFade(0.2f,2);
    }
    void TweenEase()
    {
        //曲线
       // transform.DOMove(Vector3.zero, 2).SetEase(Ease.InCirc,1,0);
    }
    void TweenCallBack()
    {
        //动画完成回调
        transform.DOMove(Vector3.one, 2).OnComplete(()=> { Debug.Log("i am a hanpi"); });
    }

    // Update is called once per frame
    void Update ()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            TweenMove();
            TweenRotate();
            TweenScale();
            TweenPunch();
            TweenShake();
            TweenCamera();
            TweenLight();
            TweenMaterial();
            TweenText();
            TweenEase();
            TweenCallBack();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值