Unity3D实现二维物体的来回移动

最近在做一个小游戏,需要写场景中物体的来回移动的脚本,在这里记录一下。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BeltMove : MonoBehaviour
{
    //移动距离
    public float dis;
    //移动速度
    public float speed;
    //水平移动为true 竖直移动为false
    public bool flag;
    //移动方向
    float dir = 1;
    //起始位置
    float start_x;
    float start_y;

    void Start()
    {
        start_x = transform.position.x;//水平移动的起点
        start_y = transform.position.y;//竖直移动的起点
    }

    void Update()
    {
        //移动
        //竖直移动
        if (flag)
        {
            transform.Translate(Vector2.right * dir * speed * Time.deltaTime);
            if (System.Math.Abs(transform.position.x - start_x) <= 0.1f || System.Math.Abs(transform.position.x - start_x) >= dis) { dir = -dir; }
        }
        //水平移动
        else {
            transform.Translate(Vector2.up * dir * speed * Time.deltaTime);
            if (System.Math.Abs(transform.position.y - start_y) <= 0.1f || System.Math.Abs(transform.position.y - start_y) >= dis) { dir = -dir; }
        }
    }
}

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值