官網原文解釋:
CanUseSpriteAtlas tag
Set CanUseSpriteAtlas
tag to “False” if the shader is meant for sprites, and will not work when they are packed into atlases (see Sprite Packer).
翻譯:
CanUseSpriteAtlas標籤
CanUseSpriteAtlas
如果着色器用於精靈,則將標籤設置爲“ False”,並且在將它們打包爲地圖集時將不起作用(請參見Sprite Packer)。
實際效果,並沒有發生官網所述的設置爲False,Shader將不起作用,Shader仍然在正常地工作着(問題所在,無解)
Shader "Hidden/CanUseSpriteAtlasTest"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
}
SubShader
{
Tags
{
"CanUseSpriteAtlas" = "False" //默認爲True 即允許圖集
}
// No culling or depth
Cull Off
ZWrite Off
ZTest Always
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
return o;
}
sampler2D _MainTex;
fixed4 frag (v2f i) : SV_Target
{
fixed2 uv = i.uv;
uv.x = (uv.x + _Time.x * 10) % 1;
fixed4 col = tex2D(_MainTex, uv);
return col;
}
ENDCG
}
}
}
發現如下述問題等待解答
1、CanUseSpriteAtlas屬性的實際作用是什麼?
2、當Canvas處於WorldSpace、Screen Space-Camera 渲染模式時,Shader渲染隊列必須大於2500,一般人只會注意到必須是Transparent(3000)透明隊列的物體纔會渲染出來,爲什麼?
新發現:
1、經過對比兩種打圖集方式,進行打包發現,Sprite Packer舊圖集會比Sprite Atlas新圖集佔用更少的包體佔用大小。