Beispiel #1
0
        public static void Log(string category, ELogVerbosity verbosity, string message)
        {
            if (verbosity == ELogVerbosity.Fatal)
            {
                string callstack = null;
                try
                {
                    callstack = Environment.StackTrace;
                }
                catch
                {
                }
                FMessage.OpenDialog("Fatal error from C# (USharp):" + Environment.NewLine + Environment.NewLine +
                                    message + Environment.NewLine + Environment.NewLine +
                                    "Callstack:" + Environment.NewLine + Environment.NewLine + callstack);
            }

            if (string.IsNullOrEmpty(category))
            {
                category = "USharp";
            }
            using (FStringUnsafe messageUnsafe = new FStringUnsafe(message))
                using (FStringUnsafe categoryUnsafe = new FStringUnsafe(category))
                {
                    Native_FMessageDialog.Log(ref messageUnsafe.Array, ref categoryUnsafe.Array, verbosity);
                }
        }
Beispiel #2
0
 private void OnAssetLoadingCrash()
 {
     if (!string.IsNullOrEmpty(loadingAsset))
     {
         FMessage.OpenDialog(string.Format("Crash when loading asset '{0}'", loadingAsset));
     }
 }
Beispiel #3
0
        private static void ValidateStructSize <T>(Native_SizeOfStruct.Del_SizeOf func, int managedSize) where T : struct
        {
            int nativeSize = func();

            if (managedSize != nativeSize)
            {
                string error = string.Format("Struct size mismatch on '{0}' managed:{1} native:{2}", typeof(T), managedSize, nativeSize);
                FMessage.Log(ELogVerbosity.Error, error);
#if DEBUG
                System.Diagnostics.Debug.WriteLine(error);
                System.Diagnostics.Debug.Assert(false, error);
#else
                FMessage.OpenDialog(error);
#endif
            }
        }