赞
踩
在Unity中,TileMap缝隙问题网上解决方案五花八门,这里就是问题的终点。
问题:Tilemap绘制时可能会出现缝隙。以下是解决方案:
创建一个新的材质并将其Shader设置为Sprites/Default,同时启用"Pixel Snap"选项。然后,在Tilemap Renderer组件上使用新创建的材质。
在Inspector面板中,找到"Texture Type"并将其设置为"Sprite (2D and UI)"(如果尚未设置)。
向下滚动至"Advanced"部分,并展开它。“Texture"部分将"Wrap Mode"设置为"Clamp”。
PS:像素图块可以将FilterMode改为Point (no filter)。
可以创建一个自定义Shader来处理这个问题。确保在Shader中包含以下代码行:
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
UNITY_APPLY_FOG(i.fogCoord, col);
fixed4 col = tex2D(_MainTex, v.uv - half2(0.5f / _MainTex_TexelSize.x, 0.5f / _MainTex_TexelSize.y));
return col;
在Tilemap Renderer组件上更改"Sort Order"的设置,使所有连接的Tilemap正确排序。例如,如果您有多层Tilemap,则需要根据顺序设置不同的"Order in Layer"值。
对于每个切片,添加一定宽度的额外透明像素(例如1个像素)作为边缘填充,以确保相邻的切片不会相互覆盖。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。