Skip to content
This repository was archived by the owner on May 9, 2023. It is now read-only.

Commit 211576e

Browse files
committed
Fallback to LateUpdate if OnPostRender listener failed
1 parent 3e42d74 commit 211576e

File tree

1 file changed

+27
-5
lines changed

1 file changed

+27
-5
lines changed

src/Core/ExplorerBehaviour.cs

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,32 @@ internal static void Setup()
3232
public ExplorerBehaviour(IntPtr ptr) : base(ptr) { }
3333
#endif
3434

35+
private static bool onPostRenderFailed;
36+
3537
internal void Awake()
3638
{
39+
try
40+
{
3741
#if CPP
38-
Camera.onPostRender = Camera.onPostRender == null
39-
? new Action<Camera>(OnPostRender)
40-
: Il2CppSystem.Delegate.Combine(Camera.onPostRender, (Camera.CameraCallback)new Action<Camera>(OnPostRender)).Cast<Camera.CameraCallback>();
42+
Camera.onPostRender = Camera.onPostRender == null
43+
? new Action<Camera>(OnPostRender)
44+
: Il2CppSystem.Delegate.Combine(Camera.onPostRender,
45+
(Camera.CameraCallback)new Action<Camera>(OnPostRender)).Cast<Camera.CameraCallback>();
4146

47+
if (Camera.onPostRender == null || Camera.onPostRender.delegates == null)
48+
{
49+
ExplorerCore.LogWarning("Failed to add Camera.onPostRender listener, falling back to LateUpdate instead!");
50+
onPostRenderFailed = true;
51+
}
4252
#else
43-
Camera.onPostRender += OnPostRender;
53+
Camera.onPostRender += OnPostRender;
4454
#endif
55+
}
56+
catch (Exception ex)
57+
{
58+
ExplorerCore.LogWarning($"Exception adding onPostRender listener: {ex.ReflectionExToString()}\r\nFalling back to LateUpdate!");
59+
onPostRenderFailed = true;
60+
}
4561
}
4662

4763
internal void Update()
@@ -54,7 +70,13 @@ internal void FixedUpdate()
5470
ExplorerCore.FixedUpdate();
5571
}
5672

57-
internal static void OnPostRender(Camera camera)
73+
internal void LateUpdate()
74+
{
75+
if (onPostRenderFailed)
76+
OnPostRender(null);
77+
}
78+
79+
internal static void OnPostRender(Camera _)
5880
{
5981
ExplorerCore.OnPostRender();
6082
}

0 commit comments

Comments
 (0)