Shader实现,不依赖碰撞体
效果一般…
fixed4 frag(v2f i) : SV_Target { // sample the texture fixed4 col = tex2D(_MainTex, i.uv); float3 cameraLocation = _globalCameraWorldLocation.xyz; float3 targetLocation = _globalCameraTargetWorldLocation.xyz; float3 cameraToTarget = targetLocation - cameraLocation; float3 cameraToVertex = i.worldPos - cameraLocation; float cosValue = mul(normalize(cameraToTarget), normalize(cameraToVertex)); if (length(cameraToTarget) > length(cameraToVertex) && cosValue > 0.95) { col.a = lerp(0.8, 0.0, (cosValue - 0.95) / 0.05); } // apply fog UNITY_APPLY_FOG(i.fogCoord, col); return col; }