u3d_插件DoTween:(05)动画的前放和倒放

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

#####一、步骤

1.定义一个属性	public bool isIn = false; // 判断是否在屏幕当中(默认是false 不在屏幕当中) 判断是否在屏幕当中
2.按钮点击判断处理 isIn 的操作
3.DOLocalMove、DOMove这些方法会返回一个Tweener的对象,动画结束之后会把这个对象销毁
4.panelTransform.DOPlayBackwards();// 倒放
5.tweener.SetAutoKill(false); // 把autokill 自动销毁设置 为 不自动销毁
6.DOPlay(); // 动画只会执行1次
7.DOPlayForward(); 和DOPlayBackwards();// 是成对的

二、code
MyButton脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
public class MyButton : MonoBehaviour {

// 属性
	public RectTransform panelTransform; // image
	public bool isIn = false; // 判断是否在屏幕当中(默认是false 不在屏幕当中)

// 方法
	// 代码放到start里面 说明只会执行一次 , 
	void Start(){
		
		// 进入屏幕
		// DOMove 
		// 这个修改是世界坐标
		//		panelTransform.DOMove (new Vector3 (0, 0, 0), 1);// 让paneltransform从当前位置 动画到0,0,0 时间为1秒
		// 我们需要修改的是局部坐标
		Tweener tweener = panelTransform.DOLocalMove (new Vector3 (0, 0, 0), 0.3f);
		// DolcalMove 动画 默认播放完会销毁
		// tweener 对象保存这个动画的信息 每次调用do类型的方法都会创建一个tweener对象,这个对象是dotween来管理的
		tweener.SetAutoKill(false); // 把autokill 自动销毁设置 为 不自动销毁
		tweener.Pause(); // 暂停
	}

	public void onclick (){

		if (isIn == false) {
//			panelTransform.DOPlay ();//只会播放一次
			panelTransform.DOPlayForward(); // 前放 跟DOPlayBackwards是成对的

			// 如果把start 中tweener这些操作放到这个,那么每次执行1次都会保留一个tweener对象,消耗性能
			isIn = true; // 设置为在屏幕中
		} else {
			// 让panel离开屏幕
			panelTransform.DOPlayBackwards();// 倒放
			isIn = false; // 设置为不在屏幕中
		}

	}
}


动画的前放盒倒放.gif

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看