34 lines
1.1 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|