VolumeFogManager.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEditor;
  4. using UnityEngine;
  5. using UnityEngine.Rendering;
  6. namespace FXV
  7. {
  8. [ExecuteInEditMode]
  9. public class VolumeFogManager
  10. {
  11. public static VolumeFogManager instance = null;
  12. static Camera currentCamera = null;
  13. #if UNITY_EDITOR
  14. [InitializeOnLoadMethod]
  15. #endif
  16. [RuntimeInitializeOnLoadMethod]
  17. static void CreateInstance()
  18. {
  19. instance = new VolumeFogManager();
  20. RenderPipelineManager.beginCameraRendering -= OnBeginCamRender;
  21. if (Internal.fxvFogAssetConfig.ActiveRenderPipeline != Internal.fxvFogAssetConfig.Pipeline.BuiltIn)
  22. {
  23. RenderPipelineManager.beginCameraRendering += OnBeginCamRender;
  24. }
  25. }
  26. static void OnBeginCamRender(ScriptableRenderContext context, Camera camera)
  27. {
  28. currentCamera = camera;
  29. }
  30. public Camera GetCurrentRenderingCamera()
  31. {
  32. if (Internal.fxvFogAssetConfig.ActiveRenderPipeline != Internal.fxvFogAssetConfig.Pipeline.BuiltIn)
  33. {
  34. return currentCamera;
  35. }
  36. return Camera.current;
  37. }
  38. }
  39. }