doteeen(hotween第二个版本) hotween leantween gokit itween(多个相同动画类型的插件):性能最高的是dotween

引用命名空间:using DG.Tweening;

第一种动画方式:通过改变值(与游戏物体属性关联)来实现动画

public Vector3 myValue = new Vector3(0,0,0);

//对变量做一个动画 (通过插值的方式去修改一个值的变化)

DOTween.To(() => myValue, x => myValue = x, new Vector3(10,10,10), 2);

//前两个参数可以固定,只要改变myValue类型(vector3,float,int等)

第二种方式:

//让paneltransfrom从当前位置 动画到 0,0,0的位置 时间为1s (修改的世界坐标),UI上是局部坐标

paneltransfrom.DoMove(目标值,时间)方法

//修改的是局部坐标

panelTransform.DOLocalMove(new Vector3(0, 0, 0), 0.3f);//默认动画播放完成会被销毁(所以无法回放,使用DOPlayBackwards()方法无法回放)

设置其不被销毁:

//Tweener对象保存这个动画的信息 每次调用do类型的方法都会创建一个tweener对象,这个对象是dotween来管理

void Start() {

//panelTransform.DOMove(new Vector3(0, 0, 0), 1);//让paneltransfrom从当前位置 动画到 0,0,0的位置 时间为1s (修改的世界坐标)

Tweener tweener = panelTransform.DOLocalMove(new Vector3(0, 0, 0), 0.3f);//默认动画播放完成会被销毁

//Tweener对象保存这个动画的信息 每次调用do类型的方法都会创建一个tweener对象,这个对象是dotween来管理

tweener.SetAutoKill(false);// 把autokill 自动销毁设置为false

tweener.Pause();//不想执行就暂停

}

实现效果:点击进屏幕,再点击出屏幕

注意:调用DoPlay()只执行一次

DoPlayForward():会执行所有的动画

 

fromTween函数使用:

transform.DOMoveX(5, 3):对单个值做控制,第一个参数是目标值,后一个是时间,从当前位置到目标位置

transform.DOMoveX(5, 3).From():改变运动方向,就是从目标位置到当前位置

transform.DOMoveX(5, 4).From(true):true表示目标位置是相对位置,比如当前位置X是1,运行之后就会从1到1+5=6的位置

动画的属性设置:

想要修改哪个组件上的属性就要得到相对应的组件:比如改变image透明值,就要得到image组件

可调用对象:

1. Image

2. Text

3. OutLine

4. Graphic

下面是对应方法:

publicstaticTweener DOColor(thisImage target, Color endValue,floatduration);

通过下面的代码,增强理解,和记忆:这里以图片为例

 

Tweener tweener = transform.DOLocalMoveX(0, 2);

tweener.SetEase(Ease.OutBounce);//设置动画的曲线

tweener.setLoops(2):设置动画循环次数,0是执行一次

tweener.OnComplete(OnTweenComplete);//动画结束事件

void OnTweenComplete() {

Debug.Log("动画播放完成了");

}

动画的生命周期:

自动播放,除非更改defaultAutoPlay

播放完自动销毁,除非更改defaultAutoKill

想要重复播放,调用setAutoKill方法

暂停,Pause方法

如果动画目标变成空会报错,可以设置安全模式

onRewind:当动画背重置的时候

onStart:开始的时候执行一次

onPlay:会调用多次

 

对话框文字动画:

text.DOText("接下来,我们进入第二篇章接下来,我们进入第二篇章", 4);//总共时间为4S

Text上面没有文字时,默认一个字一个字显示的。如果有文字就一点一点的覆盖掉

richText:表示支持富文本

 

 

text  --粗体

text     --斜体

text   --自定义字号

text --自定义颜色

text       --自定义颜色(16进制)

屏幕震动效果(实际是camera的震动,随机向周围运动,最后会回到原来的未知):

camera.transform.DOShakePosition(1,new Vector3(3,3,0));

new Vector3(3,3,0):震动强度,两种表示方式,0-1值(前后震动),第二种是向量(控制震动强度)

1:震动持续时间

颜色和透明度动画:

text.DOColor(Color.red, 2);

text.DOFade(1, 3);

插件里面DO方法是创建动画的,set方法是设置属性的,on方法是设置生命周期事件的

dotween.init();//初始化方法,可以自己设置初始化//会以默认值初始化

官网的document上有对应的组件支持的方法

创建序列:(对多个动画统一集合管理)

还有一些全局设置,比如自动销毁,自动播放

动画的组件可视化编程:

给对应的游戏物体添加doTweenAnimation组件,要找这个组件上支持的方法,不然会报错,动画会有自己的ID,可以通过ID控制动画

如果要在代码上控制播放:

DOTweenAnimation tweenAnimation = GetComponent<>(DOTweenAnimation);

tweenAnimation.DOPlay();//播放

点击循环播放:

public void OnClick() {

if (isShow == true) {

tweenAnimation.DOPlayBackwards();

isShow = false;

}

else {

tweenAnimation.DOPlayForward();

isShow = true;

}

}

doTweenPath可视化路径编辑器,让游戏物体按照指定的路径来运动(比如漫游):

添加doTweenPath组件

两个快捷方式:shift+ctrl:添加路径点

shift+alt移除路径点

ease:曲线类型

autokill:销毁的只是动画,路径可以重复使用

loop:-1:无限循环 0:播放一次

pathType:路径类型,直线和曲线

classpath:是否为闭合,完整一圈

localMovement:按照局部坐标移动

orientatoin:朝向

relative:为true时移动游戏物体所有点会保持原先相对距离跟随游戏物体移动(整体位移),单个点还是可以移动的

color:辅助线颜色

show indexes:显示索引(点)

handles type:图标的类型(比如显示点的3个轴)

handle mode:2D还是3D

reset path:重置

脚本得到已经设置的路径:

waypoint里可以看到所有的点

doTogglePause:点一下运动点一下暂停

dokill:杀死动画

restart:重新播放

DoTween插件的更多相关文章

  1. unity Dotween插件的简单介绍及示例代码

    unity里面做插值动画的插件有许多,比较常见的有itween.hotween.dotween.根据大家的反馈和实际体验来说,dotween插件在灵活性.稳定性.易用性上都十分突出.这里简单介绍下它的 ...

  2. 关于Unity中DOTween插件的使用(专题一)

    DOTween flash里面的一个概念叫补间动画,DOTween就是干这个事情的. 补间动画:在1秒钟之内从A点移动到B点,在这个之间会把动画补间补好. 当我们安装好DOTween后,它就会提供很多 ...

  3. Unity中DOTween插件的DOTweenPath轨迹移动

    先来看一下DOTweenPath组件的截图 1.Scene View Commands (1)SHIFT+CTRL:add a waypoint        加一个轨迹点 (2)SHIFT+ALT: ...

  4. Unity3D_(插件)DOTween动画插件

    使用DOTween动画插件来实现物体的移动动画 Learn 一.DOTween插件对变量的动画 二.控制Cube和UI面板的动画 三.动画的快捷播放方式 四.动画的前放和后放 五.From Tween ...

  5. Unity进阶----DoTween及工程文件夹的建立(2018/11/12)

    DoTween 仅介绍部分常用用法,代码参上:(其它操作见官网:http://dotween.demigiant.com/documentation.php) using System.Collect ...

  6. DOTween的基本用法

    首先声明一点,不要简单的认为 DOTween 只能用在 Transform 组件上完成一些简单的动画,或者是完成一些 UI 动画,DOTween 的用途是很广的,unity中有很多组件都可以使用 DO ...

  7. Unity3D插件-自制小插件、简化代码便于使用(新手至高手进阶必经之路)

    Unity3D插件-简化代码.封装功能 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 FindT() ...

  8. Unity3D热更新之LuaFramework篇[05]--Lua脚本调用c#以及如何在Lua中使用Dotween

    在上一篇文章 Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法 中,我对LuaBehaviour脚本进行了扩展,添加了两个新的UI监听方法,也提到最好能单写一个脚本处理此 ...

  9. Unity3D手机斗地主游戏开发实战(02)_叫地主功能实现(不定期更新中~~~)

    目录 Unity3D手机斗地主游戏开发实战(01)_发牌功能实现 Unity3D手机斗地主游戏开发实战(02)_叫地主功能实现 一.大体思路 前面我们实现了点击开始游戏按钮,系统依次给玩家发牌的逻辑和 ...

随机推荐

  1. 集合第七发练习之利用ArrayList做栈、队列

    栈:后进先出. 队列:先进先出. 利用这个核心思想,结合集合的add和remove方法做的栈和队列如下代码所示: 主类(t1()和t2()分别演栈和队列):   package cn.hncu.myS ...

  2. Sublime Text3 运行python(转)

    From:http://blog.csdn.net/hun__ter/article/details/51223031 安装sublime text3后,按Ctrl+b无法运行python文件. 解决 ...

  3. com.netflix.hystrix.contrib.javanica.exception.FallbackDefinitionException: fallback method wasn't found: serviceError([class java.lang.String]) 异常

    在使用spring cloud 的 Hystrix 后可能会遇到 如下截图错误: 后台代码如下: 找了好一会经过分析参数方法和原方法参数步一致造成: 修改后代码如下:

  4. node.js实现国标GB28181设备接入的sip服务器解决方案

    方案背景 在介绍GB28181接入服务器的方案前,咱们先大概给大家介绍一下为什么我们选择了用nodejs开发国标GB28181的服务,我大概给很多人介绍过这个方案,大部分都为之虎躯一震,nodejs在 ...

  5. POJ 1694 An Old Stone Game【递归+排序】

    链接: http://poj.org/problem?id=1694 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27454#probl ...

  6. bash编程基础

    bash变量 变量命名: 1.不能使用程序中的关键字(保留字) 2.只能使用数字.字母和下划线,且不能以数字开头 3.要见名知义 变量类型: 数值型:精确数值(整数),近似数值(浮点型) 字符型:ch ...

  7. JavaScript-Confirm用法

    function checkMobileBind() {    if(confirm('您尚未绑定手机,是否前往绑定?'))    {        window.location='http://m ...

  8. 还在用 kill -9 停机?这才是最优雅的姿势(转)

    _ 最近瞥了一眼项目的重启脚本,发现运维一直在使用 kill-9<pid> 的方式重启 springboot embedded tomcat,其实大家几乎一致认为:kill-9<pi ...

  9. Unity3D C#事件管理:EventManager

    原文地址:http://bbs.9ria.com/thread-153258-1-1.html 原project地址:https://github.com/djandrew/UnityEventMan ...

  10. Linux中rpm包管理器

    包全名: 1.操作的包是没有安装的软件包时,使用全名,而且要注意路径 2.例如:jdk-8u131-linux-x64.rpm包名: 1.操作的是已经安装好的软件包,使用包名,是搜索/var/lib/ ...