使用unity动画系统实现无限循环的背景
Unity实现无限循环滚动背景效果
前言
之前曾因项目需要实现过循环滚动背景效果,但当时考虑不够周全,实现效果不尽人意。经过重新思考和实践,现将改进后的实现方法分享如下。
本文实现方式为无代码动画实现。
开始之前,你需要准备:
- 具备Unity基本操作知识(本文将省略部分基础操作的详细说明)
- 一张前后/首尾无缝衔接的背景图片

一、准备工作
创建并打开Unity项目。本文使用的是Unity 2022版本。
1.1 配置Sprite
将循环背景图片导入项目中,并进行以下设置:
- Texture Type:设置为"Sprite (2D and UI)"
- Wrap Mode:设置为"Repeat"
- 点击 Apply 应用设置

1.2 创建Material材质
创建新的Material材质球,命名为"ScrollingBackground_Mat"。
配置材质参数:
- Shader:选择 Shader → Unlit/Texture
- Base (RGB):将Texture设置为导入的背景图片
1.3 场景搭建
在当前场景中添加3D物体:
- 创建 3D Object → Quad
- 设置Quad的Scale为 ((20, 20, 1))(根据实际需要调整)
- 调整摄像机位置和视角,确保背景完全覆盖视野
- 将"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

浙公网安备 33010602011771号