滚动背景重叠

时间:2018-06-19 11:29:39

标签: unity3d

我有很长的游戏背景,所以我对它进行了两个分区,并开始实施一个又一个的滚动。

但是在滚动过程中,我遇到了此类问题-一部分与另一部分重叠,下图将使您更加清楚我的观点:

enter image description here

由于重叠的问题,它看起来不平滑。 这是我用于实现的代码:

public class LayerScroller : MonoBehaviour
{

public Layer[] backgroundLayers;
public Layer[] starLayers;

void Start ()
{

}

void Update ()
{
//      for (int i = 0; i < backgroundLayers.Length; i++) {
//          backgroundLayers [i].MoveLayer ();
//      }

    for (int i = 0; i < starLayers.Length; i++) {
        starLayers [i].MoveLayer ();
    }
}
}

public class Layer : MonoBehaviour
{

public Transform prevGroupLayer;
public float speed;

public void MoveLayer ()
{

    Vector3 currPosition = transform.position;
    currPosition.y -= speed;
    transform.position = Vector3.Lerp (transform.position, currPosition, Time.deltaTime * 10f);

 //     transform.Translate (Vector3.right * -speed * Time.deltaTime);

    if (transform.position.y <= -GameConstants.BACKGROUND_LENGTH) {
        Vector3 currentPosition = transform.position;
        currentPosition.y = (prevGroupLayer.position.y + (GameConstants.BACKGROUND_LENGTH)) - speed * Time.deltaTime;
        transform.position = currentPosition;
    }
}
}

LayerScroller 脚本控制着所有子层,并且每个层都包含 Layer 脚本。

完整的层次结构如下:

enter image description here

请提供一些解决此重叠问题的指导,肯定是我在犯一些小错误。

0 个答案:

没有答案