易于复用
使用简单
效果还不错
自动添加背景图层
自动移动背景图层位置
立体感更强,游戏效果更好



代码挂在新建空对象BackGroundController上,子物体放背景图,需要自己设置背景图的层级
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public class BackGroundFollow : MonoBehaviour
{
//需要添加的背景图,
List<SpriteRenderer> CurrentSpriteRenderers = new List<SpriteRenderer>();
//控制移动的对象
List<Transform> Parents = new List<Transform>();
//图片的宽
float spriteOffsetX = 35.74f; //图片与图片之间的偏移,也就是一张背景图的宽度
//主相机
Camera cam;
//屏幕宽对应2D世界中的长度
float CameraWightTranslate2Dlength;
//上一针相机的位置
Vector3 cameraLastPos;
private void Awake()
{
cam = Camera.main;
//计算相机宽度
CameraWightTranslate2Dlength = GetCameraWightTranslate2Dlength();
CreateBackgroundAndParents();
//获取图片的宽
BoxCollider2D tmp = CurrentSpriteRenderers[0].gameObject.AddComponent< BoxCollider2D > ();
spriteOffsetX = tmp.size.x;
Destroy (tmp);
}
private void Start()
{
cameraLastPos = cam.transform.position;
}
private void Update()
{
Follow(<

该博客介绍了一种在Unity3D中实现背景自动平滑滚动的方法,通过创建控制器BackGroundFollow,自动添加和移动背景图层,确保游戏场景的立体感和流畅效果。代码详细展示了如何检测相机移动并相应地更新背景位置,同时优化了不同图层的移动速度,以实现更真实的视觉体验。
最低0.47元/天 解锁文章
1万+





