使用unity动画系统实现无限循环的背景

Unity实现无限循环滚动背景效果

前言

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

开始之前,你需要准备:

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

bg2w


一、准备工作

创建并打开Unity项目。本文使用的是Unity 2022版本。

1.1 配置Sprite

将循环背景图片导入项目中,并进行以下设置:

  • Texture Type:设置为"Sprite (2D and UI)"
  • Wrap Mode:设置为"Repeat"
  • 点击 Apply 应用设置

tmp930A

1.2 创建Material材质

创建新的Material材质球,命名为"ScrollingBackground_Mat"。

配置材质参数:

  • Shader:选择 Shader → Unlit/Texture
  • Base (RGB):将Texture设置为导入的背景图片

1.3 场景搭建

在当前场景中添加3D物体:

  1. 创建 3D Object → Quad
  2. 设置Quad的Scale为 ((20, 20, 1))(根据实际需要调整)
  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"(设为默认动画)

屏幕截图 2025-10-26 010905

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 值,控制动画播放速度至合适状态

三、完成效果

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

22333


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

— 完成于 2025.10.26

posted @ 2025-10-26 01:42  Gh0st2ongZi  阅读(15)  评论(0)    收藏  举报