1using System.Collections.Generic;
3using UnityEngine.Rendering;
4using UnityEngine.Rendering.Universal;
13 private Texture uiDoublerTexture;
15 private Shader uiDoublerShader;
16 private Material uiDoublerMaterial;
18 private float uiDoublerEyeOffset = 0f;
20 private Camera renderCamera;
26 uiDoublerMaterial =
new Material(uiDoublerShader);
27 uiDoublerMaterial.SetTexture(
"_MainTex", uiDoublerTexture);
28 uiDoublerMaterial.SetFloat(
"_3d_offset", uiDoublerEyeOffset);
32 private void OnEnable()
34 RenderPipelineManager.beginCameraRendering += OnBeginCameraRendering;
35 RenderPipelineManager.endCameraRendering += OnEndCameraRendering;
38 private void OnDisable()
40 RenderPipelineManager.beginCameraRendering -= OnBeginCameraRendering;
41 RenderPipelineManager.endCameraRendering -= OnEndCameraRendering;
47 uiDoublerMaterial.SetFloat(
"_3d_offset", uiDoublerEyeOffset);
50 private void OnBeginCameraRendering(ScriptableRenderContext context, Camera camera)
52 if (camera == renderCamera)
54 camera.GetUniversalAdditionalCameraData().scriptableRenderer.EnqueuePass(directCanvasRenderPass);
58 private void OnEndCameraRendering(ScriptableRenderContext context, Camera camera)