1.Unity 2D背景图轮换

2D游戏中,背景图轮换是一个非常常用的场景,轮换的方式现在有两种,一种是两张图片不断改变坐标
另一种是使用shader,原理相同,同样都是坐标轮换

方式一:

两张图片不断改变坐标,当第二张到达第一张图片图片的位置,两个交换循环:

布局如图在这里插入图片描述
代码绑定在BG上,代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Background : MonoBehaviour
{

    // Start is called before the first frame update
    private GameObject background1;
    private GameObject background2;
    public GameObject swap;
    public int speed = 4;
    private Vector3 startPosition;
    private Vector3 endPosition;
    void Start()
    {
         background1 = transform.Find("Background1").gameObject;
         background2 =  transform.Find("Background2").gameObject;
         startPosition = background1.transform.position;
          endPosition = background2.transform.position;
    }

    // Update is called once per frame
    void Update()
    {
        background1.transform.Translate(Vector3.left * Time.deltaTime * speed, Space.World);
        background2.transform.Translate(Vector3.left * Time.deltaTime * speed, Space.World);
        if (background2.transform.position.x < startPosition.x)
        {
            background1.transform.position = endPosition;
            swap = background1;
            background1 = background2;
            background2 = swap;
        }
  
    }
}

方式二:

布局:
在这里插入图片描述

Shader "Custom/LooperBgShader"
{
    Properties
    {
        _Color ("Color", Color) = (1,1,1,1)
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
        _MainTex1 ("Albedo (RGB)", 2D) = "white" {}
        _Glossiness ("Smoothness", Range(0,1)) = 0.5
        _Metallic ("Metallic", Range(0,1)) = 0.0
    }
    SubShader
    {
        Pass{

        CGPROGRAM
        // Physically based Standard lighting model, and enable shadows on all light types
   
        // Use shader model 3.0 target, to get nicer looking lighting
        #pragma target 3.0
        #include "UnityCG.cginc"
        sampler2D _MainTex;
        sampler2D _MainTex1;
        float4 _MainTex_ST;
        float4 _MainTex1_ST;
        struct a2v {
            float4 vertex : POSITION;
            float4 texcoord : TEXCOORD0;
        };

        struct v2f {
             float4 pos : SV_POSITION;
             float4 uv : TEXCOORD0;    // uv中xy变量记录背景1,zw变量记录背景2
        };
        
        int _ScrollX = 1;
        int _Scroll2X = 1;
        // 顶点着色器中实现图像的移动,用速度*_Time.y来实现
        v2f vert (a2v v) {
            v2f o;
            o.pos = UnityObjectToClipPos(v.vertex);
            // 背景1,坐标位置+横向移动量
            o.uv.xy = TRANSFORM_TEX(v.texcoord, _MainTex) + frac(float2(_ScrollX, 0.0) * _Time.y);
            // 背景2,坐标位置+横向移动量
            o.uv.zw = TRANSFORM_TEX(v.texcoord, _MainTex1) + frac(float2(_Scroll2X, 0.0) * _Time.y);

            return o;
        }
        
        _Multiplier = 1.0f
        fixed4 frag (v2f i) : SV_Target
        {
            //对两张纹理进行采样
            fixed4 firstLayer = tex2D(_MainTex, i.uv.xy);
            fixed4 secondLayer = tex2D(_MainTex1, i.uv.zw);
            //使用第二层纹理的透明通道来混合两张纹理,使用CG的lerp函数
            fixed4 c = lerp(firstLayer, secondLayer, secondLayer.a);
            //使用_Multiplier参数和输出颜色相乘,调整背景亮度
            c.rgb *= _Multiplier;
            return c;
        }
        ENDCG
             }
    }
    FallBack "Diffuse"
}

故事简介 丑小鸭生来就很丑,谁都不喜欢它,从小被其他鸭子欺负。它无奈离开了妈妈,拿上一把猎枪,独自流浪,风餐露宿。每当遇到各种怪物而子弹不够用时,丑小鸭只能通过自己的血肉之躯踩死怪物。路上只能靠水果和蔬菜维持体力,无聊时也能抬头数星星。翻山越岭,逢水架桥,勇闯空中栈道和独木桥,踩过蹦床,躲过电锯,钻过加农炮,坐过火箭,穿过枪林弹雨,在极度艰苦的条件下大战终极BOSS。最终,丑小鸭占领了一座豪华城堡,里面住着它心仪的白富美(其实也是个丑小鸭),它在夜色降临之前,轻轻关上门,打开灯,结束了流浪生涯,此时天空绽放绚烂的烟花,拉开幸福生活的序幕...... 这个故事告诉我们:只要你肯奋斗,我命由我不由天 时长 课程分为上下两部,共64节课(21.1小时) 其中,上部29节课(8.5小时),下部35节课(12.6小时) 课程特色 对初学者友好,初次遇到新技术会详细讲解 全程直播,坚决不在直播外偷偷修改 展示所有细节,手把手教学 游戏元素完整丰富,共3张地图18个关卡 代码和文档开源,github托管地址 https://github.com/sailings/DuckAdventure 完善的售后支持 涵盖实战中常用的知识点 Physics,刚体,碰撞,弹簧体 Mecanim,动画状态机,动画融合,动画层 Animation,动画编辑与录制 单例模式 协程 Dotween 粒子特效 射线检测 键盘和移动端输入 Cinemachine相机跟随,Confiner扩展 UGUI常见控件,HUD 屏幕自适应 地图与关卡解锁 关卡滑动 背景滚动 子弹轨迹计算 音效管理 场景编辑 数据及上下文存储 大纲 丑小鸭历险记&mdash;&mdash;趣味玩转unity2d游戏开发(下)   1.背景设置原理解析 2.背景设置以及云彩,山,树的滚动 3.游戏状态菜单 4.暂停、恢复、重新开始 5.主菜单的状态切换,地图选择 6.地图解锁 7.关卡列表展示 8.关卡列表左右滑动 9.关卡进入,解锁,关卡的最佳成绩设置 10.通关界面UI设计以及显示 11.通关界面的数值更新、加载下一关 12.通关界面动画效果 13.移动端输入控制 14.音效(上) 15.音效(下) 16.场景整理与规划,总分计算,地形编辑 17.关卡W1-1(丛林) 18.关卡W1-2 19.关卡W1-3 20.关卡W1-4 21.关卡W1-5 22.关卡W1-6 23.关卡W1-7 24.关卡W1-8 25.关卡W1-9 26.关卡W1-10 27.关卡W1-11 28.关卡W1-12 29.关卡W2-1(荒漠) 30.关卡W2-2 31.关卡W2-3 32.关卡W3-1(冰雪) 33.关卡W3-2 34.关卡W3-3 35.游戏打包、课程总结
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页