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);
transform.DOLocalMove(new Vector3(1, 1, 0), 2);
transform.DOMoveX(1,2);
transform.DOMoveY(2,2);
transform.DOMoveZ(2,2);
transform.DOMove(Vector3.one,2);
旋转(Rotate)
transform.DORotate(new Vector3(0,90,0),2);
transform.DORotateQuaternion(new Quaternion(0.1f,0.1f,0.1f,0.1f),2);
缩放(Scale)
transform.DOScale(new Vector3(2, 2, 2), 2);
transform.DOScaleX(2,2);
transform.DOScaleY(2,2);
transform.DOScaleZ(2,2);
弹动(Punch)
transform.DOPunchPosition(new Vector3(0, 10, 0), 5, 5, 0.1F);
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);
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);
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);
material.DOColor(Color.clear,2);
material.DOFade(1,2);
material.DOGradientColor(gradient,2);
material.DOBlendableColor(Color.red, 2);
material.DOBlendableColor(Color.blue, 2);
相机(Camera) 在写相机的代码之前,脚本应该赋给相机,将Cube上的脚本删除否则会报错。
Camera camera = GetComponent<Camera>();
camera.DOAspect(1,2);
camera.DOColor(Color.green,2);
camera.DONearClipPlane(3,2);
camera.DOFarClipPlane(30,0.1f);
camera.DOFieldOfView(30,2);
camera.DOOrthoSize(3,1);
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", 2).SetEase(Ease.Linear);
text.DOFade(0.5F,2);
text.DOBlendableColor(Color.blue,2);
|