因为NGUI中已经有UITween了,可是UGUI中是没有这样的Tween的。我看过UGUI的Demo它的实现方式是用Animator来做的,这样每一个需要移动的对象就要挂上一个AmimationController并且还要去编辑动画。。 想想都恐怖,我觉得真没必要那么做。。
我强烈建议新项目使用DoTween。http://dotween.demigiant.com/ 网址要翻墙,不然打不开。不要紧后面我把下载地址提供出来。 (目前DoTween还是测试版本)DoTween的文档写的非常详细,所以我就简单的只写两句代码,为大家抛砖引玉一下即可。
不得不说的是,因为在做游戏暂停的时候通常会使用Time.Scale = 0 ,可是暂停的时候UI如果需要继续有动画怎么办呢?在DoTween中只需要设置 tweener.SetUpdate(true); 即可。意思就是这个Tween是忽略TimeScale,如果不写的话 tweener.SetUpdate 是 false。
using DG.Tweening; //不能少了这个命名空间。
void Start ()
{
//让TimeScale = 0
Time.timeScale = 0;
Image image = transform.Find("Image").GetComponent<Image>();
//调用DOmove方法来让图片移动
Tweener tweener = image.rectTransform.DOMove(Vector3.zero,1f);
//设置这个Tween不受Time.scale影响
tweener.SetUpdate(true);
//设置移动类型
tweener.SetEase(Ease.Linear);
tweener.onComplete = delegate() {
Debug.Log("移动完毕事件");
};
image.material.DOFade(0,1f).onComplete = delegate() {
Debug.Log("褪色完毕事件");
};
}
Tween的移动类型有很多种,比如匀速运动、加速运动、减速运动,等等。如果你拿捏不准你需要用什么移动类形式。
http://www.robertpenner.com/easing/easing_demo.html 你可以在这里预览一下那种移动类型更佳适合你。
代码中我们设置了图片的移动 和 褪色,因为移动的Tween设置了忽略Time.Scale,所以代码中Time.Scale =0时,图片的Tween响应了位移操作,然后褪色的Tween却没有。
最后是DoTween的类库,如果你没有翻墙就下载我的吧, 是最新的。 欢迎大家在留言处和我一起讨论,加油!Fighting!
http://pan.baidu.com/s/1o6qiefC
- 本文固定链接: https://www.xuanyusong.com/archives/3330
- 转载请注明: 雨松MOMO于 雨松MOMO程序研究院 发表

雨松MOMO , 你好 , 我有个DOTWEEN的问题想请教一下你 , 你有空看到的烦请帮一下我,谢谢你. 我用DOPath做来回运动的动作,,但我希望他从A点走到B点后,在B点返回A点时, 前进方向是一直都是对象的Z轴所指的方向, 用HOtween的OrientToPath() 可以做到这一点,但现在想转用Dotween做以后的项目, 但遇到这个问题 没找到方法解决.
void Start() { transform.DOPath(waypoints, 1).OnWaypointChange(MyCallback);}void MyCallback(int waypointIndex) { Debug.Log(“Waypoint index changed to ” + waypointIndex);}像这样 来监听DoTween改变路径的事件 然后look At 下一个点就行了。。
void Start() { transform.DOPath(waypoints, 1).OnWaypointChange(MyCallback);}void MyCallback(int waypointIndex) { Debug.Log(“Waypoint index changed to ” waypointIndex);}像这样 来监听DoTween改变路径的事件 然后look At 下一个点就行了。。
MOMO大拿,请问一下DoTween怎么像NGUI Tween那样播放复合动画呢?(我指的是Tween Group),找了许久没有找到咧
这个就得自己来做的。。
aa
这里有个unity自带的animationcurve实现的tween,几十行代码搞定:http://www.redblack.cn/?p=82
不知道雨松有没有尝试DoTween NGUI 我这边测试这两个在电脑上没问题 但是到Android上卡的没动画
不知道雨松有没有尝试DoTween+NGUI 我这边测试这两个在电脑上没问题 但是到Android上卡的没动画
ngui不是有tween么。。 还需要dotween么
NGUI的tween感觉不太顺手 而且功能也不太够 现在发现好像不是这两个插件问题 Android上性能卡在loading.loadfileheader 不知道是个什么玩意。。。
松哥,我要改变RectTransform.anchoredPosition这个值,应该怎么写tween
麻烦问momo一个跟这个不大相干的问题。这个新版的Dotween中,他的一些tween方法都是直接附属于 Transform 类下的,但是调用方法时代码提示又显示方法是属于Tweener的,(比如调用DOMove 直接调 transform.DOMove 就可以使用)那我想问, Dotween是如何做到在 官方的API上添加自己的方法的??这直接是如何联系起来的??
C# 的特性。。。。https://msdn.microsoft.com/zh-cn/library/bb383977.aspx
噢,多谢 多谢 希望没打扰到你!!!
动画我稍微修改了下NGUI的Tween,可以直接在UGUI中用,也挺方便的
遇到一個問題想請問一下雨松,我用Unity製作PC版Game,遊戲內有使用DoTween做動畫,但我按下視窗上X會回到登入畫面,在進去遊戲,用DoTween做的所有動畫都不能正常顯示,請問有甚麼解決辦法嗎??拜託了~謝謝
dotween 支持 method chaining,一行就可以搞定,不用写成多行。 image.rectTransform.DOMove(Vector3.zero,1f).SetUpdate(true).SetEase(Ease.Linear).OnComplete(()=>Debug.Log(“移动完毕事件”));
我想用dotween放3个点,然后做一个弧形移动,为什么都是直走的啊?
很喜欢momo大大的教程呀!
谢谢。
请问momo 如何将粒子系统用在新GUI上面呢?
你真是大神 什么东西都你这里找到 真想请你吃顿饭 PS 我买了你的书哈
哈哈。。
顺便一说 U3d的SOCKET 你写得那个 无法解决手机通讯时粘包的问题 我很蛋痛 它接收消息必须先声明一个缓冲 然后一次把所有的读取出来 怪恶心的 正在想解决办法
我内个写的有问题 我没时间改。。
DOTween的bug还很多,还是老老实实用他原来的HOTween
不错
谢谢哈
您好,我尝试了一下,发现有个问题,请问一下,我设置的缓慢改变透明度,为什么脚本附在这个物体上,其他物体没有附上该脚本,但是一样会有这种效果出现呢?就是我只想让单独的这个text改变透明度,但是场景上其他text和它一起改变了透明度,然后我没有指定让他们改变呀?怎么回事呢?请问
噢- -我知道了…要给ui添加材质球…
可以直接为你要设置的游戏物体更改,不用非得给它加材质,不用的。
我也遇到这个问题 请问你是怎么做的
这是免费的,而且是目前性能最高的
恩恩,而且使用起来很方便。。非常好。。
DOTween不需翻墙吧
最好翻墙吧 哈哈哈。