unity 场景背景替换2D图片方法

unity 场景背景替换2D图片方法

方法一 二维图片天空球Shader

特点:

直接替换天空球,操作方便

天空球环境光受背景贴图影响

Shader

Shader "Skybox/Background 2D" 
{
	Properties 
	{		  
		_Color("  Color", color) = (1, 1, 1, 1)
		[NoScaleOffset] _MainTex ("  Map", 2D) = "white" {}
	}

	SubShader 
	{
		Tags { "QUEUE"="Background" 
			   "RenderType"="Background" 
			 } 
		LOD 200
		Cull Off ZWrite Off

		Pass 
		{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#include "UnityCG.cginc"

			fixed4 _Color;
			sampler2D _MainTex;

			struct vertOut 
			{
                float4 pos : SV_POSITION;
                float4 scrPos : TEXCOORD0;
            };

            vertOut vert(appdata_base v) 
			{
                vertOut o;
                o.pos = UnityObjectToClipPos (v.vertex);
                o.scrPos = ComputeScreenPos(o.pos);
                
				return o;
            }

            fixed4 frag(vertOut i) : SV_Target 
			{	
                float2 uv = (i.scrPos.xy / i.scrPos.w);

				return tex2D(_MainTex, uv) * _Color;
            }

			ENDCG
		}
	} 
} 

方法二 辅助背景Camera

特点:

设置复杂,控制简单

需要两个Camera

背景Camera设置:

Depth 值要比Main Camera低

Main Camera设置:

ClearFlags设置成Don‘tClear

Camera.main.clearFlags = CameraClearFlags.Nothing;

新建二维背景Canvas:

BackgroundCanvas设置

RenderMode 设置成ScreenSpace-Camera

RenderCamera设置成背景Camera

BackGroundImage背景图片设置:

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小生云木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值