Files
aibis-dream/Assets/Scripts/SubWay/ParallaxManager.cs
T

34 lines
1.1 KiB
C#

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