static public int OnBeforeSerialize(IntPtr l)
 {
     try {
                     #if DEBUG
         var    method     = System.Reflection.MethodBase.GetCurrentMethod();
         string methodName = GetMethodName(method);
                     #if UNITY_5_5_OR_NEWER
         UnityEngine.Profiling.Profiler.BeginSample(methodName);
                     #else
         Profiler.BeginSample(methodName);
                     #endif
                     #endif
         UnityEngine.ISerializationCallbackReceiver self = (UnityEngine.ISerializationCallbackReceiver)checkSelf(l);
         self.OnBeforeSerialize();
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
             #if DEBUG
     finally {
                     #if UNITY_5_5_OR_NEWER
         UnityEngine.Profiling.Profiler.EndSample();
                     #else
         Profiler.EndSample();
                     #endif
     }
             #endif
 }
 static public int OnBeforeSerialize(IntPtr l)
 {
     try {
         UnityEngine.ISerializationCallbackReceiver self = (UnityEngine.ISerializationCallbackReceiver)checkSelf(l);
         self.OnBeforeSerialize();
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }