无代码动画实现Unity无限滚动背景

70 阅读2分钟

前言

之前曾因项目需要实现过循环滚动背景效果,但当时考虑不够周全,实现效果不尽如人意。经过重新思考和实践,现将改进后的实现方法分享如下。 本文实现方式为无代码动画实现。

开始之前,你需要准备:

  1. 具备 Unity 基本操作知识(本文将省略部分基础操作的详细说明)
  2. 一张前后/首尾无缝衔接的背景图片

一、准备工作

创建并打开 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 物体:

  1. 创建 3D Object → Quad
  2. 设置 Quad 的 Scale 为 (根据实际需要调整)
  3. 调整摄像机位置和视角,确保背景完全覆盖视野
  4. 将”ScrollingBackground_Mat”材质拖拽到 Quad 对象上

二、动画系统配置

2.1 添加 Animator 组件

为 Quad 添加 Animator 组件:

  1. 创建新的 Animator Controller
  2. 将 Animator Controller 关联到 Quad 的 Animator 组件中

2.2 创建 Animation 动画

  1. 创建新的 Animation Clip,命名为”MaterialScroll_Animation”
  2. 在 Animation 窗口中勾选 Loop Time(循环播放)
  3. 打开 Animator 窗口,将”MaterialScroll_Animation”添加到 Animator Controller 中
  4. 右键该动画状态,选择 “Set as Layer Default State”(设为默认动画)

2.3 设置关键帧动画

在层级面板中选中 Quad,进行以下操作:

  1. 在 Inspector 面板中展开 Material 属性
  2. 找到 Base (RGB) 下的 Offset 属性
  3. 开启动画录制模式(红色录制按钮)
  4. 在时间轴的起始位置(0:00),设置 Offset X = 0
  5. 在时间轴的结束位置,设置 Offset X = 1
  6. 分别右键选中两个关键帧,设置 Both Tangents → Linear(线性插值)
  7. 调整 Samples 值,控制动画播放速度至合适状态

三、完成效果

运行场景,即可看到背景图片无限循环滚动的效果。


实现原理说明:通过动画控制材质 UV 偏移量(Offset),配合 Repeat 模式的 Wrap Mode,实现纹理的无缝循环滚动效果。线性插值保证了匀速滚动,Loop Time 确保了动画的无限循环。

— 2025.10.26