u3d_插件DoTween:(05)动画的前放和倒放
u3d_插件DoTween:(05)动画的前放和倒放
宇鸿165 发表于9个月前
u3d_插件DoTween:(05)动画的前放和倒放
  • 发表于 9个月前
  • 阅读 29
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

#####一、步骤

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

共有 人打赏支持
粉丝 1
博文 154
码字总数 368963
×
宇鸿165
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: