版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a435931517/article/details/80599466
记笔记,记笔记
UI动画的前放和倒放的效果是这样的:
UI动画的前放和倒放方法一:
利用一个布尔变量简单暴力的判断UI的位置,然后通过DOLocalMove()实现UI的动画
具体代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
public class DoMove_01 : MonoBehaviour {
public RectTransform mBagPanelRectTransform;
private bool _bIn = false;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
public void Onclick()
{
if(!_bIn)
{
mBagPanelRectTransform.DOLocalMove(new Vector3(0f, 0f, 0f), 0.3f);//控制本地坐标移动mBagPanelRectTransform.DOLocalMove(new Vector3(0f, 0f, 0f), 0.3f);//控制本地坐标移动
_bIn = true;
}
else
{
mBagPanelRectTransform.DOLocalMove(new Vector3(680f, 0f, 0f), 0.3f);
_bIn = false;
}
}
}
UI动画的前放和倒放方法二:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
public class DoMove_02 : MonoBehaviour {
public RectTransform mBagPanelRectTransform;
private bool bin = false;
public void OnClick()
{
if(!bin)
{
Tweener tweener = mBagPanelRectTransform.DOLocalMove(new Vector3(0f, 0f, 0f), 0.3f);
tweener.SetAutoKill(false);// 不让Do方法返回的Tweener对象自动销毁,默认情况下是自动销毁的。
bin = true;
}
else
{
mBagPanelRectTransform.DOPlayBackwards();//倒放
bin = false;
}
}
}
第二种方法由于需要一直创建对象因此,会比较消耗性能,如图所示:
因此将创建对象这部分放入void Start()方法中也就得到了第三种方法
UI动画的前放和倒放方法三:
就是利用 Dotween中对应的DOPlayForward()和DOPlayBackwards()方法实现UI动画的正放和倒放,具体代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
public class DoMove_02 : MonoBehaviour {
public RectTransform mBagPanelRectTransform;
private bool bin = false;
void Start()
{
Tweener tweener = mBagPanelRectTransform.DOLocalMove(new Vector3(0f, 0f, 0f), 0.3f);
tweener.SetAutoKill(false);// 不让Do方法返回的Tweener对象自动销毁,默认情况下是自动销毁的。
tweener.Pause();
}
public void OnClick()
{
if(!bin)
{
mBagPanelRectTransform.DOPlayForward();//前放
bin = true;
}
else
{
mBagPanelRectTransform.DOPlayBackwards();//倒放
bin = false;
}
}
}