ui图片做左右移动背景的特效脚本

/*--------------------------------------------------------------------

  • Author Name: DXL
  • Creation Time: 2/27/2019 11:11:07 AM
  • File Describe: Spine做乒乓移动效果
  • ------------------------------------------------------------------*/

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

public enum MoveDir
{
Up,
Down,
Left,
Right
}

public class MovePingpong : MonoBehaviour
{

public MoveDir dir;     //初始移动方向    
public float speed;     //移动速度    
public bool changeX;    //是否在调整方向时改变X    
public bool changeY;    //是否在调整方向时改变X    
public bool isStop;     //是否停止
public float leftLine;  //左边界
public float rightLine; //右边界
public float upLine;    //上边界
public float downLine;  //下边界


float di = 1;           //当前方向

// Use this for initialization
void Start()
{

}


// Update is called once per frame
void Update()
{
    if (isStop)
    {
        return;
    }

    Vector3 nowPos = gameObject.transform.localPosition;
    //left or right
    if (dir == MoveDir.Left || dir == MoveDir.Right)
    {
        int initDir = dir == MoveDir.Left ? -1 : 1;
        float x = nowPos.x + speed * Time.deltaTime * di * initDir;
        gameObject.transform.localPosition = new Vector3(x, nowPos.y, nowPos.z);

        if (x < leftLine || x > rightLine)
        {
            di = -di;
            if (changeX)
            {
                gameObject.transform.localScale = new Vector3(
                    gameObject.transform.localScale.x * -1,
                    gameObject.transform.localScale.y, gameObject.transform.localScale.z);
            }
        }
    }

    //up ro down
    else if (dir == MoveDir.Up || dir == MoveDir.Down)
    {
        int initDir = dir == MoveDir.Down ? -1 : 1;
        float y = nowPos.y + speed * Time.deltaTime * di * initDir;
        gameObject.transform.localPosition = new Vector3(nowPos.x, y, nowPos.z);

        if (y < downLine || y > upLine)
        {
            di = -di;
            if (changeY)
            {
                gameObject.transform.localScale = new Vector3(
                    gameObject.transform.localScale.x,
                    gameObject.transform.localScale.y * -1, gameObject.transform.localScale.z);
            }
        }
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值