unity 2D 中如何用C#语言 实现背景的循环移动?

2024-11-08 00:09:13
推荐回答(2个)
回答(1):

比如说移动12像素看起来就跟最初没移动一样,那么 int x = 0; 在update的时候if(x <= -12) x = 0; else x -= 1; //当然你可以通过减去的值来设置速度 x计算出来了,y不变,然后再draw,

回答(2):

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);
}
}