오류수정

This commit is contained in:
2026-09-01 21:36:23 +09:00
parent 7ec587353a
commit 527dc54218
27 changed files with 922 additions and 80 deletions

View File

@@ -0,0 +1,61 @@
// 색을 하나도 쓰지 않고 깊이만 기록하는 사각형.
//
// 캐릭터보다 "먼저"(Queue 를 앞당겨) 그리고 캐릭터보다 카메라에 "가깝게" 두면,
// 이 사각형이 덮은 픽셀에서 캐릭터가 깊이 테스트에 탈락해 아예 그려지지 않는다.
// 그리면서 색을 안 쓰므로(ColorMask 0) 창의 알파도 건드리지 않는다 —
// 그 자리는 투명한 채로 남고, 실제 데스크톱 창이 그대로 비친다.
// 결과적으로 캐릭터가 창 "뒤"에 있는 것처럼 보인다.
//
// 알파를 0 으로 덮어쓰는 방법도 있지만, 그건 그 자리에 그려진 다른 것까지 같이
// 지운다. 깊이 마스크는 캐릭터만 가리므로 부작용이 없다.
Shader "MyCharacterAgent/PlatformOccluder"
{
SubShader
{
// Geometry(2000) 보다 앞이라 캐릭터보다 먼저 그려진다.
Tags
{
"RenderType" = "Opaque"
"Queue" = "Geometry-100"
"RenderPipeline" = "UniversalPipeline"
}
Pass
{
ColorMask 0 // 색 버퍼에 아무것도 쓰지 않는다
ZWrite On // 깊이만 남긴다
ZTest LEqual
Cull Off // 사각형이 뒤집혀도 동작하게
HLSLPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
struct Attributes
{
float4 positionOS : POSITION;
};
struct Varyings
{
float4 positionCS : SV_POSITION;
};
Varyings vert(Attributes input)
{
Varyings output;
output.positionCS = TransformObjectToHClip(input.positionOS.xyz);
return output;
}
half4 frag(Varyings input) : SV_Target
{
return 0; // ColorMask 0 이라 어차피 버려진다
}
ENDHLSL
}
}
Fallback Off
}

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: bec1d474e5384404eab44f2400f6d7b8
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant: