比如说移动12像素看起来就跟最初没移动一样,那么 int x = 0; 在update的时候if(x <= -12) x = 0; else x -= 1; //当然你可以通过减去的值来设置速度 x计算出来了,y不变,然后再draw,
Unity中自带了循环函数:
using UnityEngine;
using System.Collections;
public class BackImage : MonoBehaviour
{
public float a = 3.0f;
// Update is called once per frame
void Update ()
{
float MovePos = Mathf.Repeat ( a * Time.time, transform.localScale.x);
transform.position = Vector3.right * MovePos;
}
}
如果没有自带的版本可以采用强制限定的方法。
即 void Update ()
{
transform.Translate(Vector3.right * Time.deltaTime * a);
if(transform.position.x <= -localScale.x)
{
transform.position=new Vector3(
localScale.x,
transform.position.y,
transform.position.z);
}
}