Add a second, additive HDR emission color (_XRayColor) that reveals a player through walls as a pulsing energy glow, driven during matches: - Shader: XRayOverlay pass (ZTest Greater, additive) for occluded parts plus a matching additive term in the forward fragment for visible parts, so the glow shows everywhere and never double-blends. Exposes _XRayColor, _XRayPulseSpeed and _XRayPulseStrength for a breathing pulse. - Render it after opaques via a RenderObjects feature (custom XRayReveal light-mode tag) on both PC and Mobile renderers, so the through-wall test is depth-sort independent and no longer drops out at some camera angles/distances. - MeshPainter drives _XRayColor alpha through a framerate-independent fade (xrayFadeDuration) rather than a hard toggle. - Reveal is driven per avatar on every client: all remaining un-found hiders glow during the Resolution phase, and a hider whose ConcealmentMeter EmbeddedPercent exceeds MatchManager.embeddedRevealPercent glows via an owner-authoritative NetworkVariable. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
100 lines
3.0 KiB
Plaintext
100 lines
3.0 KiB
Plaintext
%YAML 1.1
|
|
%TAG !u! tag:unity3d.com,2011:
|
|
--- !u!114 &11400000
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
|
|
m_Name: Mobile_Renderer
|
|
m_EditorClassIdentifier:
|
|
debugShaders:
|
|
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3}
|
|
hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
|
|
probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3}
|
|
probeVolumeResources:
|
|
probeVolumeDebugShader: {fileID: 0}
|
|
probeVolumeFragmentationDebugShader: {fileID: 0}
|
|
probeVolumeOffsetDebugShader: {fileID: 0}
|
|
probeVolumeSamplingDebugShader: {fileID: 0}
|
|
probeSamplingDebugMesh: {fileID: 0}
|
|
probeSamplingDebugTexture: {fileID: 0}
|
|
probeVolumeBlendStatesCS: {fileID: 0}
|
|
m_RendererFeatures:
|
|
- {fileID: 8698145602227116336}
|
|
m_RendererFeatureMap: 30995f295705b678
|
|
m_UseNativeRenderPass: 1
|
|
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
|
|
m_AssetVersion: 3
|
|
m_PrepassLayerMask:
|
|
serializedVersion: 2
|
|
m_Bits: 4294967295
|
|
m_OpaqueLayerMask:
|
|
serializedVersion: 2
|
|
m_Bits: 4294967295
|
|
m_TransparentLayerMask:
|
|
serializedVersion: 2
|
|
m_Bits: 4294967295
|
|
m_DefaultStencilState:
|
|
overrideStencilState: 0
|
|
stencilReference: 0
|
|
stencilCompareFunction: 8
|
|
passOperation: 2
|
|
failOperation: 0
|
|
zFailOperation: 0
|
|
m_ShadowTransparentReceive: 0
|
|
m_RenderingMode: 0
|
|
m_DepthPrimingMode: 0
|
|
m_CopyDepthMode: 0
|
|
m_DepthAttachmentFormat: 0
|
|
m_DepthTextureFormat: 0
|
|
m_AccurateGbufferNormals: 0
|
|
m_IntermediateTextureMode: 0
|
|
--- !u!114 &8698145602227116336
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 1
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 6b3d386ba5cd94485973aee1479b272e, type: 3}
|
|
m_Name: XRay Reveal (through walls)
|
|
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.RenderObjects
|
|
m_Active: 1
|
|
settings:
|
|
passTag: XRayReveal
|
|
Event: 300
|
|
filterSettings:
|
|
RenderQueueType: 0
|
|
LayerMask:
|
|
serializedVersion: 2
|
|
m_Bits: 4294967295
|
|
PassNames:
|
|
- XRayReveal
|
|
overrideMaterial: {fileID: 0}
|
|
overrideMaterialPassIndex: 0
|
|
overrideShader: {fileID: 0}
|
|
overrideShaderPassIndex: 0
|
|
overrideMode: 0
|
|
overrideDepthState: 0
|
|
depthCompareFunction: 4
|
|
enableWrite: 1
|
|
stencilSettings:
|
|
overrideStencilState: 0
|
|
stencilReference: 0
|
|
stencilCompareFunction: 8
|
|
passOperation: 0
|
|
failOperation: 0
|
|
zFailOperation: 0
|
|
cameraSettings:
|
|
overrideCamera: 0
|
|
restoreCamera: 1
|
|
offset: {x: 0, y: 0, z: 0, w: 0}
|
|
cameraFieldOfView: 60
|