@@ -32,16 +32,32 @@ internal static void Setup()
32
32
public ExplorerBehaviour ( IntPtr ptr ) : base ( ptr ) { }
33
33
#endif
34
34
35
+ private static bool onPostRenderFailed ;
36
+
35
37
internal void Awake ( )
36
38
{
39
+ try
40
+ {
37
41
#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 > ( ) ;
41
46
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
+ }
42
52
#else
43
- Camera . onPostRender += OnPostRender ;
53
+ Camera . onPostRender += OnPostRender ;
44
54
#endif
55
+ }
56
+ catch ( Exception ex )
57
+ {
58
+ ExplorerCore . LogWarning ( $ "Exception adding onPostRender listener: { ex . ReflectionExToString ( ) } \r \n Falling back to LateUpdate!") ;
59
+ onPostRenderFailed = true ;
60
+ }
45
61
}
46
62
47
63
internal void Update ( )
@@ -54,7 +70,13 @@ internal void FixedUpdate()
54
70
ExplorerCore . FixedUpdate ( ) ;
55
71
}
56
72
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 _ )
58
80
{
59
81
ExplorerCore . OnPostRender ( ) ;
60
82
}
0 commit comments