我有很长的游戏背景,所以我对它进行了两个分区,并开始实施一个又一个的滚动。
但是在滚动过程中,我遇到了此类问题-一部分与另一部分重叠,下图将使您更加清楚我的观点:
由于重叠的问题,它看起来不平滑。 这是我用于实现的代码:
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 脚本。
完整的层次结构如下:
请提供一些解决此重叠问题的指导,肯定是我在犯一些小错误。