unity 2D平台跳跃游戏背景相对移动

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

易于复用
使用简单
效果还不错
自动添加背景图层
自动移动背景图层位置
立体感更强,游戏效果更好
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码挂在新建空对象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(<
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值