ParallaxLayer
2026/4/14大约 2 分钟
最后同步日期:2026-04-15 | Godot 官方原文 — ParallaxLayer
ParallaxLayer
节点继承关系
继承自 Node
| 类型 | 名称 | 说明 |
|---|---|---|
| 属性 | Name | 节点名称 |
| 属性 | ProcessMode | 处理模式(始终 / 暂停时 / 仅编辑器) |
| 属性 | ProcessPriority | 处理优先级,数字越小越先执行 |
| 信号 | ready | 节点进入场景树并准备就绪 |
| 信号 | tree_entered | 节点进入场景树 |
| 信号 | tree_exited | 节点完全离开场景树 |
| 方法 | GetNode<T>() | 按路径获取子节点 |
| 方法 | AddChild() | 添加子节点 |
| 方法 | RemoveChild() | 移除子节点 |
| 方法 | QueueFree() | 帧结束后释放节点 |
| 方法 | GetParent() | 获取父节点 |
定义
ParallaxLayer 是视差背景中的一层。它必须作为 ParallaxBackground 的子节点使用。你可以设置它的 motion_mirroring(运动镜像)和 motion_offset(运动偏移)来控制这一层以什么速度随相机移动。
简单说:它是视差背景中的"一层",放在 ParallaxBackground 容器里。
使用频率:★★★ 一般常用
注意
在 Godot 4.x 中,推荐使用新的 Parallax2D 替代 ParallaxLayer。
节点用途
- 单个背景层:如天空层、山脉层、地面层
- 分层视差:每层设置不同的运动速度
使用场景
| 场景 | 说明 |
|---|---|
| 多层背景 | 每个背景图层用不同的 ParallaxLayer |
| 远近分层 | 远处的层 motion_scale 小,近处的层 motion_scale 大 |
常用节点搭配
| 搭配节点 | 搭配方式 |
|---|---|
| ParallaxBackground | 必须作为 ParallaxBackground 的子节点 |
| Sprite2D / TextureRect | 作为 ParallaxLayer 的子节点,显示背景内容 |
生效必备素材/资源
需要配合背景图片使用。
节点属性与信号
属性
| 属性 | 类型 | 默认值 | 继承自 | 说明 |
|---|---|---|---|---|
| motion_mirroring | Vector2 | (0, 0) | ParallaxLayer | 运动镜像。用来实现无缝平铺,设为图片宽度即可 |
| motion_offset | Vector2 | (0, 0) | ParallaxLayer | 运动偏移量 |
| motion_scale | Vector2 | (1, 1) | ParallaxLayer | 运动缩放。值越小,随相机移动的速度越慢(看起来越远) |
| repeating | bool | true | ParallaxLayer | 是否重复平铺 |
信号
ParallaxLayer 没有自己的特有信号。
常用方法
ParallaxLayer 主要通过属性控制。
代码示例
C
// C# - 设置视差层参数
using Godot;
public partial class MountainLayer : ParallaxLayer
{
public override void _Ready()
{
// 山脉层:以30%的速度跟随相机移动(看起来很远)
MotionScale = new Vector2(0.3f, 0.3f);
// 无缝平铺:设为背景图片的宽度
MotionMirroring = new Vector2(1920, 0);
MotionOffset = new Vector2(0, 50); // 向下偏移50像素
}
}GDScript
# GDScript - 设置视差层参数
extends ParallaxLayer
func _ready():
# 山脉层:以30%的速度跟随相机移动(看起来很远)
motion_scale = Vector2(0.3, 0.3)
# 无缝平铺:设为背景图片的宽度
motion_mirroring = Vector2(1920, 0)
motion_offset = Vector2(0, 50) # 向下偏移50像素