You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity 2D如何实现向下循环滚动的像素游戏背景?

Unity实现向下循环滚动背景的方法

先看你要实现的循环滚动效果:
游戏循环背景效果
用到的背景精灵图:
背景精灵图

下面是具体实现步骤:

1. 配置背景精灵资源

  • 选中你的背景精灵,在Inspector面板里设置:
    • Texture Type:设为Sprite(2D and UI)
    • Wrap Mode:改为Repeat(确保纹理可重复平铺)
    • 调整Pixels Per Unit,和你的游戏像素比例匹配(像素风格游戏常用16或32)

2. 搭建场景中的背景对象

  • 在场景里创建两个Sprite对象,都使用这个背景图,命名为BackgroundTop和BackgroundBottom
  • 把两个背景垂直拼接:让BackgroundBottom的顶部和BackgroundTop的底部完全对齐,确保两个背景总高度能覆盖相机可视区域,且单张背景高度不小于相机可视高度

3. 编写滚动控制脚本

创建C#脚本ScrollingBackground.cs,代码如下:

using UnityEngine;

public class ScrollingBackground : MonoBehaviour
{
    public float scrollSpeed = 2f; // 滚动速度,可在Inspector调整
    private float spriteWorldHeight;

    void Start()
    {
        // 获取背景精灵在世界空间中的高度
        spriteWorldHeight = GetComponent<SpriteRenderer>().bounds.size.y;
    }

    void Update()
    {
        // 让背景持续向下移动
        transform.Translate(Vector2.down * scrollSpeed * Time.deltaTime);

        // 当背景完全移出相机下方时,将其移到另一个背景的上方,实现循环
        if (transform.position.y < -spriteWorldHeight)
        {
            transform.position += new Vector3(0, spriteWorldHeight * 2, 0);
        }
    }
}
  • 把这个脚本分别挂到BackgroundTop和BackgroundBottom上
  • 在Inspector里调整scrollSpeed数值,直到和目标效果匹配

注意事项

  • 确保你的相机是正交相机(2D游戏标准配置),如果用透视相机,需要修改背景位置的判断逻辑
  • 两个背景的初始位置要对齐精准,避免滚动时出现缝隙,也可以把它们放到同一个父对象下,方便统一管理

内容的提问来源于stack exchange,提问作者Pooria Sadeghy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 04:31:11