Files
UltimateFishing2020/Assets/Scripts/Assembly-CSharp/CopyMainCameraDepth.cs
2026-03-04 10:03:45 +08:00

52 lines
1.5 KiB
C#

using UnityEngine;
using UnityEngine.Rendering;
[ExecuteInEditMode]
public class CopyMainCameraDepth : MonoBehaviour
{
public Material waterMat;
public RenderTexture m_CamDepth;
private CommandBuffer m_CmdDepthGrab;
private Material m_DepthGrabMat;
private int m_pixelWidth;
private int m_pixelHeight;
private void Start()
{
m_DepthGrabMat = new Material(Shader.Find("SkyMaster/iOS_Depth_Grab"));
m_CmdDepthGrab = new CommandBuffer();
Camera.main.AddCommandBuffer(CameraEvent.BeforeImageEffectsOpaque, m_CmdDepthGrab);
Camera.main.depthTextureMode |= DepthTextureMode.Depth;
}
private void Update()
{
if (m_CmdDepthGrab == null)
{
m_DepthGrabMat = new Material(Shader.Find("SkyMaster/iOS_Depth_Grab"));
m_CmdDepthGrab = new CommandBuffer();
Camera.main.AddCommandBuffer(CameraEvent.BeforeImageEffectsOpaque, m_CmdDepthGrab);
Camera.main.depthTextureMode |= DepthTextureMode.Depth;
}
if (m_CamDepth == null || !m_CamDepth.IsCreated() || Camera.main.pixelWidth != m_pixelWidth || Camera.main.pixelHeight != m_pixelHeight)
{
m_pixelWidth = Camera.main.pixelWidth;
m_pixelHeight = Camera.main.pixelHeight;
m_CamDepth = new RenderTexture(m_pixelWidth, m_pixelHeight, 0, RenderTextureFormat.RFloat);
m_CamDepth.Create();
if (waterMat != null)
{
waterMat.SetTexture("_camDepthTex", m_CamDepth);
}
}
m_CmdDepthGrab.Clear();
m_CmdDepthGrab.name = "Grab depth";
m_CmdDepthGrab.Blit(m_CamDepth, m_CamDepth, m_DepthGrabMat);
}
}