카메라 오브젝트에 이거 붙여줘,
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
public class Depth : MonoBehaviour
{
public Camera cam;
public CommandBuffer cmd;
public List<MeshRenderer> renderers;
public Material depthWriteMat;
public RenderTexture depthTex;
private void Start()
{
cmd = new CommandBuffer();
cam.AddCommandBuffer(CameraEvent.AfterDepthTexture, cmd);
}
void Render()
{
if (depthTex != null) depthTex.Release();
depthTex = RenderTexture.GetTemporary(cam.pixelWidth, cam.pixelHeight, 16, RenderTextureFormat.Depth);
cmd.SetRenderTarget(depthTex);
cmd.ClearRenderTarget(true, false, Color.black);
foreach (var mr in renderers)
{
cmd.DrawRenderer(mr, depthWriteMat);
}
Shader.SetGlobalTexture("_CameraDepthTexture", depthTex);
}
private void OnPostRender()
{
Shader.SetGlobalTexture("_CameraDepthTexture", depthTex);
}
private void Update()
{
Render();
}
}
renderers에 모든 메쉬 렌더러 넣어주면 될거야
depthWriteMat 머테리얼에 들어가는 쉐이더는 그냥 이거
Shader "Custom/DepthWrite"
{
SubShader
{
Tags { "RenderType"="Opaque" }
Pass
{
ZWrite On
ColorMask 0
}
}
}
헐 바로 해보고 말씀드리겠습니다!! 정말 감사합니다!
오..... 작성자님
https://open.kakao.com/o/sB2BHPVd
이 톡방에 와주실 수 있으신가요? 감사의 치킨 쿠폰이라도 드리고싶읍니다..
마음만 받을게요
오 안돼요 두마리.. 두마리!! 비비큐 두마리!!