using UnityEngine; [System.Serializable] public class ParallaxLayerConfig { public GameObject layer; // 背景层的游戏对象 public float scrollSpeed; // 每层的滚动速度 public float scrollOffset; } public class ParallaxManager : MonoBehaviour { public ParallaxLayerConfig[] layerConfigs; // 背景层配置数组 //public float scrollOffset = 39.69f; // 背景循环的偏移量 void Update() { foreach (var config in layerConfigs) { // 根据配置的速度滚动背景 float parallax = config.scrollSpeed * Time.deltaTime; config.layer.transform.position += new Vector3(-parallax, 0, 0); // 如果背景移出视野范围,则将其重新放到另一边 if (config.layer.transform.position.x <= -config.scrollOffset) { config.layer.transform.position = new Vector3(config.layer.transform.position.x + 2 * config.scrollOffset, config.layer.transform.position.y, config.layer.transform.position.z); } } } }