前言
之前曾因项目需要实现过循环滚动背景效果,但当时考虑不够周全,实现效果不尽如人意。经过重新思考和实践,现将改进后的实现方法分享如下。 本文实现方式为无代码动画实现。
开始之前,你需要准备:
- 具备 Unity 基本操作知识(本文将省略部分基础操作的详细说明)
- 一张前后/首尾无缝衔接的背景图片
一、准备工作
创建并打开 Unity 项目。本文使用的是 Unity 2022 版本。
1.1 配置 Sprite
将循环背景图片导入项目中,并进行以下设置:
-
Texture Type:设置为”Sprite (2D and UI)”
-
Wrap Mode:设置为”Repeat”
-
点击 Apply 应用设置
添加图片注释,不超过 140 字(可选)
1.2 创建 Material 材质
创建新的 Material 材质球,命名为”ScrollingBackground_Mat”。
配置材质参数:
- Shader:选择 Shader → Unlit/Texture
- Base (RGB):将 Texture 设置为导入的背景图片
1.3 场景搭建
在当前场景中添加 3D 物体:
- 创建 3D Object → Quad
- 设置 Quad 的 Scale 为 (根据实际需要调整)
- 调整摄像机位置和视角,确保背景完全覆盖视野
- 将”ScrollingBackground_Mat”材质拖拽到 Quad 对象上
二、动画系统配置
2.1 添加 Animator 组件
为 Quad 添加 Animator 组件:
- 创建新的 Animator Controller
- 将 Animator Controller 关联到 Quad 的 Animator 组件中
2.2 创建 Animation 动画
- 创建新的 Animation Clip,命名为”MaterialScroll_Animation”
- 在 Animation 窗口中勾选 Loop Time(循环播放)
- 打开 Animator 窗口,将”MaterialScroll_Animation”添加到 Animator Controller 中
- 右键该动画状态,选择 “Set as Layer Default State”(设为默认动画)
2.3 设置关键帧动画
在层级面板中选中 Quad,进行以下操作:
- 在 Inspector 面板中展开 Material 属性
- 找到 Base (RGB) 下的 Offset 属性
- 开启动画录制模式(红色录制按钮)
- 在时间轴的起始位置(0:00),设置 Offset X = 0
- 在时间轴的结束位置,设置 Offset X = 1
- 分别右键选中两个关键帧,设置 Both Tangents → Linear(线性插值)
- 调整 Samples 值,控制动画播放速度至合适状态
三、完成效果
运行场景,即可看到背景图片无限循环滚动的效果。
实现原理说明:通过动画控制材质 UV 偏移量(Offset),配合 Repeat 模式的 Wrap Mode,实现纹理的无缝循环滚动效果。线性插值保证了匀速滚动,Loop Time 确保了动画的无限循环。
— 2025.10.26