DoTween学习笔记(二) UGUI结合使用(实现一些简单效果)
UGUI官方实例中是使用Animation来控制UI的移动,放大缩小动画等等, Animation来控制UI的动画工作量实在是太多了, 所以我们一般使用itween,DoTween. 来控制动画, 这样工作量大大减少. 那今天我们来学习下UGUI + DoTween吧
UGUI进行简单的移动,放大,旋转
public class MyClass : MonoBehaviour {
void Start () {
Image image = transform.GetComponent<Image>();
//DoMove的坐标系是左下角为准,移动到100,100位置
image.rectTransform.DOMove (new Vector2(100,100),1f);
//以目前坐标点向移动到当前坐标x+100,当前坐标y+100
image.rectTransform.DOMove (new Vector2(image.rectTransform.position.x + 100,image.rectTransform.position.y + 100),1f);
//当前sacle(1,1,1)1秒内添加到(3,3,1)
image.rectTransform.DOBlendableScaleBy (new Vector2(2,2),1f);
//旋转到180度
image.rectTransform.DORotate (new Vector3(0,0,180),1f);
}
}
UGUI 锚点和anchoredPosition 关系
ancharedPosition的x,y相对于锚点产生的坐标. 盘子在写一个摇杆UI时候,摇杆只有在左下角,所以摇杆设置左下角,我根据用户点击屏幕的位置Input.mousePosition.x 和 Input.mousePosition.y赋值给摇杆的anchoredPosition 所以功能是显示正常的. 但是我有一次小心操作就把摇杆的锚点设置成屏幕中心, 不管我怎么点击摇杆都在右上的位置(大家能想象出这种效果吗)
Tweener介绍: 它表示一种动画,比如想前移动,然后变颜色
Sequence介绍:
Sequence是一个队列,你可以理解成它能帮你一步一步或同时的播放一些动画.
Sequence.Append是在序列的末端插入一个Tweener,如果前面的Tweener都执行完了,就执行这个Tweener。
Sequence.Join是在序列末端插入一个Tweener,不同的是,这个Tweener将与前一个非Join加进来的Tweener并行执行。
实现Text的漂浮进出效果

代码:
using UnityEngine;
using System.Collections;
using DG.Tweening;
using UnityEngine.UI; public class TextFlotageEffect : MonoBehaviour { public Text text; private Color originColor; //原始颜色
private Vector3 originPos; //原始坐标
private Sequence sequence; //动画队列
private bool isAction; //是否可以重新播放 public void Update()
{
if(Input.GetKeyDown(KeyCode.A))
{
ShowBloodText();
}
} public void ShowBloodText()
{
if (!isAction)
{
isAction = true;
RectTransform rt = text.rectTransform;
originPos = text.rectTransform.position;
originColor = text.color; text.color = new Color(text.color.r, text.color.g, text.color.b, 0);
sequence = DOTween.Sequence(); //创建顺序列
Tweener move1 = rt.DOMoveY(rt.position.y + 50, 0.5f); //
Tweener move2 = rt.DOMoveY(rt.position.y + 100, 0.5f); Tweener alpha1 = DOTween.To(() => text.color, x => text.color = x, new Color(text.color.r, text.color.g, text.color.b, 1), 1f);
Tweener alpha2 = DOTween.To(() => text.color, x => text.color = x, new Color(text.color.r, text.color.g, text.color.b, 0), 1f); sequence.Append(move1);
sequence.Join(alpha1);
sequence.AppendInterval(0.2f);
sequence.Append(move2);
sequence.Join(alpha2);
sequence.AppendInterval(0.2f);
sequence.OnComplete(OnComplete1);
} } public void OnComplete1()
{
text.rectTransform.position = originPos;
text.color = originColor;
Debug.Log("完成移动了");
isAction = false;
} }
DoTween学习笔记(二) UGUI结合使用(实现一些简单效果)的更多相关文章
- WPF的Binding学习笔记(二)
原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计
源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...
- JMX学习笔记(二)-Notification
Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...
- java之jvm学习笔记二(类装载器的体系结构)
java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...
- Java IO学习笔记二
Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...
- 《SQL必知必会》学习笔记二)
<SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...
- NumPy学习笔记 二
NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(二) indigo tools
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
随机推荐
- NetAnalyzer笔记 之 一. 开篇语
[创建时间:2015-08-26 22:00:12] NetAnalyzer下载地址 第一次写技术相关的博客,不足之处还请担待并告知. 在开始之前,先简单介绍一下NetAnalyzer, NetAna ...
- mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法
权限问题,授权 给 root 全部sql 权限 mysql> grant all privileges on *.* to root@"%" identified by & ...
- hibernate-4.3.5安装配置
起初照着官方文档配,一直出错,貌似官方的文档时错的,查了非常多资料,综合整理了一个可行的方案,例如以下: 0.1包结构 test.demo test.domain //实体类 test.util// ...
- 设置单选的listView或者gridview
主要是这个BeaseAdapter的方法notifyDataSetChanged()的使用;作用 :调用BaseAdapter中的getView();方法,刷新ListView中的数据.实现:1.在B ...
- FineUI控件之树的应用(二)
一.Tree控件应用 <f:PageManager ID="PageManager1" runat="server" /> <f:Tree I ...
- centos打开3306端口
centos默认是关闭了3306端口的,外网通过3306端口不能访问数据库,这时需呀打开3306端口1.打开端口: /sbin/iptables -I INPUT -p tcp --dport 330 ...
- jwplayer修改logo右键版权
jwplayer二次编译,可以自定义自己的logo和右键版权.
- hdu4355 三分
F - 三分 Crawling in process... Crawling failed Time Limit:2000MS Memory Limit:32768KB 64bit I ...
- 洛谷 P3367 【模板】并查集
P3367 [模板]并查集 题目描述 如题,现在有一个并查集,你需要完成合并和查询操作. 输入输出格式 输入格式: 第一行包含两个整数N.M,表示共有N个元素和M个操作. 接下来M行,每行包含三个整数 ...
- About USB Data Link Cable API
About USB Data Link Cable API The text on this webpage is licensed under the Creative Commons Attrib ...