プレイヤーが地形の背後にいるときは、グレーで塗りつぶし、そうでないときは、単純なランバートシェーディングを適用するUnityのシェーダを書いた。 Shader "Custom/PlayerDiffuse" { Properties { _NotVisibleColor ("NotVisibleColor (RGB)", Color) = (0.3,0.3,0.3,1) _MainTex ("Base (RGB)", 2D) = "white" {} } SubShader { Tags { "Queue" = "Geometry+500" "RenderType"="Opaque" } LOD 200 Pass { ZTest Greater Lighting Off ZWrite Off Color [_NotVisibleColor] } Pass { ZTest LEqual Mat