Shader "Infinite World/VoxelWorld/TextureArrayUnlit" { Properties { _TextureArray("Texture Array", 2DArray) = "white" {} _BaseColor("Base Color", Color) = (1, 1, 1, 1) } SubShader { Tags { "RenderType"="Opaque" "Queue"="Geometry" "RenderPipeline"="UniversalPipeline" } LOD 100 Pass { Name "Forward" Tags { "LightMode"="SRPDefaultUnlit" } Cull Back ZWrite On HLSLPROGRAM #pragma vertex vert #pragma fragment frag #pragma target 3.5 #pragma require 2darray #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" TEXTURE2D_ARRAY(_TextureArray); SAMPLER(sampler_TextureArray); CBUFFER_START(UnityPerMaterial) half4 _BaseColor; CBUFFER_END struct Attributes { float4 positionOS : POSITION; float3 normalOS : NORMAL; float2 uv : TEXCOORD0; float2 textureData : TEXCOORD1; }; struct Varyings { float4 positionHCS : SV_POSITION; float2 uv : TEXCOORD0; float textureLayer : TEXCOORD1; }; Varyings vert(Attributes input) { Varyings output; VertexPositionInputs positionInputs = GetVertexPositionInputs(input.positionOS.xyz); output.positionHCS = positionInputs.positionCS; output.uv = input.uv; output.textureLayer = input.textureData.x; return output; } half4 frag(Varyings input) : SV_Target { float2 tiledUv = frac(input.uv); half4 albedo = SAMPLE_TEXTURE2D_ARRAY(_TextureArray, sampler_TextureArray, tiledUv, input.textureLayer); return albedo * _BaseColor; } ENDHLSL } } }