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 ...
随机推荐
- laravel3中文文档是迈入laravel4的捷径
http://v3.golaravel.com/docs/ 目录 Laravel概览 更新日志 安装与设置 系统需求 安装 服务器设置 基本设置 环境 友好的链接(URL) 路由 基础 通配符(Wil ...
- [Angular 2] Using the @Inject decorator
TypeScript is used heavily as we build up our application, but TypeScript isn’t required. If you wan ...
- Play Framework Web开发教程(33): 结构化页面-组合使用模板
和你编写代码相似,你编写的页面也能够由多个小的片段组合而成,这些小的片段本身也能够由更小的片段构成.这些小片段一般是能够在其他页面反复使用的:有些部分能够用在全部页面,而有些部分是某些页面特定的.本篇 ...
- TTB 基本
中文名 ,线程构建模块 外文名 Thread Building Blocks 缩 写 TBB 开 发 intel 目录 1线程构建模块 2黑体亮温 3斜交载重轮胎 4串联球轴承 1 ...
- jquery获取当前元素坐标
1. jquery获取当前元素坐标 A) 获取对象
- 你所不知道的java编程思想
读thinking in java这本书的时候,有这么一句话“在编译单元的内部,可以有一个公共(public)类,它必须拥有与文件相同的名字” 有以下疑问: 在一个类中说可以有一个public类,那是 ...
- win7 安装vs2010报错 Error code -939523550 for this component is not recognizedHi
When i try to install VS2010, Its not installing. I'm getting an error. It just try to install the ...
- app打包,发布(同步发生冲突)
1:打包步骤: 1:桌面建立一个文件夹,名字叫keystore 2:点击build下面的 ,如下: 3:会出现如下界面: 4:下一步: 5:如果有keystore,请点击 choose exi ...
- asp.net获取ip地址的方法
在ASP中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的I ...
- linux服务器伪分布模式安装hadoop-1.1.2
1:环境准备 1台linux服务器, hadoop安装包(apache官方网下载) jdk1.6+ 2:安装jdk ,配置好环境变量(etc/profile),java -version 测 ...