예제 #1
0
        private static void GlobalAssert()
        {
            StackTraceLogType stackTraceLogType = Application.GetStackTraceLogType(LogType.Error);

            Application.SetStackTraceLogType(LogType.Error, StackTraceLogType.None);

            MonoBehaviour[] allMonoOnActiveScene = Resources.FindObjectsOfTypeAll <MonoBehaviour>();
            foreach (MonoBehaviour monoBehaviour in allMonoOnActiveScene)
            {
                if (Attribute.GetCustomAttribute(monoBehaviour.GetType(), typeof(Assert)) as Assert != null)
                {
                    SerializedObject serializedObject = new SerializedObject(monoBehaviour);
                    foreach (FieldInfo field in monoBehaviour.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic))
                    {
                        if (field.FieldType.IsClass)
                        {
                            SerializeField atr = Attribute.GetCustomAttribute(field, typeof(SerializeField)) as SerializeField;
                            if (atr != null)
                            {
                                if (serializedObject.FindProperty(field.Name).propertyType == SerializedPropertyType.ObjectReference &&
                                    serializedObject.FindProperty(field.Name).objectReferenceValue == null)
                                {
                                    Debug.LogErrorFormat(monoBehaviour.gameObject, monoBehaviour.gameObject.name + "." + field.Name + ", typeof " + field.FieldType.Name + " is null");
                                }
                            }
                        }
                    }
                }
            }
            Application.SetStackTraceLogType(LogType.Error, stackTraceLogType);
        }
예제 #2
0
            public void Start()
            {
                if (get != null && get != this)
                {
                    StackTraceLogType saveType = Application.GetStackTraceLogType(LogType.Warning);
                    Application.SetStackTraceLogType(LogType.Warning, StackTraceLogType.None);
                    Debug.LogWarning("LowPoly_PlanarReflection script is already asigned to '" + get.gameObject.name + "'", get.gameObject);
                    Application.SetStackTraceLogType(LogType.Warning, saveType);

                    enabled = false;
                    return;
                }
                else
                {
                    get = this;
                }

                if (targetMaterial == null)
                {
                    Renderer r = GetComponent <Renderer>();
                    if (r != null)
                    {
                        targetMaterial = r.sharedMaterial;
                    }
                }

                if (targetMaterial == null)
                {
                    enabled = false;

                    Debug.LogWarning("LowPoly_PlanarReflection: Target material is not defined.");
                }
            }
예제 #3
0
        public SetStackTraceLogTypeScope(LogType logType, StackTraceLogType stackTraceLogType)
        {
            m_logType = logType;
            m_oldStackTraceLogType = Application.GetStackTraceLogType(logType);

            Application.SetStackTraceLogType(logType, stackTraceLogType);
        }
        public void AddItemsToMenu(GenericMenu menu)
        {
            if (Application.platform == RuntimePlatform.OSXEditor)
            {
                menu.AddItem(new GUIContent("Open Player Log"), false, new GenericMenu.MenuFunction(InternalEditorUtility.OpenPlayerConsole));
            }
            menu.AddItem(new GUIContent("Open Editor Log"), false, new GenericMenu.MenuFunction(InternalEditorUtility.OpenEditorConsole));
            IEnumerator enumerator = Enum.GetValues(typeof(StackTraceLogType)).GetEnumerator();

            try
            {
                while (enumerator.MoveNext())
                {
                    StackTraceLogType stackTraceLogType = (StackTraceLogType)((int)enumerator.Current);
                    menu.AddItem(new GUIContent("Stack Trace Logging/" + stackTraceLogType), Application.stackTraceLogType == stackTraceLogType, new GenericMenu.MenuFunction2(this.ToggleLogStackTraces), stackTraceLogType);
                }
            }
            finally
            {
                IDisposable disposable = enumerator as IDisposable;
                if (disposable != null)
                {
                    disposable.Dispose();
                }
            }
        }
예제 #5
0
 private static void SetStackTraceType(StackTraceLogType traceType)
 {
     PlayerSettings.SetStackTraceLogType(LogType.Error, traceType);
     PlayerSettings.SetStackTraceLogType(LogType.Assert, traceType);
     PlayerSettings.SetStackTraceLogType(LogType.Warning, traceType);
     PlayerSettings.SetStackTraceLogType(LogType.Log, traceType);
     PlayerSettings.SetStackTraceLogType(LogType.Exception, traceType);
 }
예제 #6
0
        /// <summary>
        /// 実行する時に呼び出されます
        /// </summary>
        protected override BuildCommandResult DoRun()
        {
            m_oldType = PlayerSettings.GetStackTraceLogType(LogType.Log);

            SetStackTraceLogType(m_type);

            return(Success(m_type.ToString()));
        }
예제 #7
0
        public static void LogWarning(object message, UnityEngine.Object context, StackTraceLogType stacktrace = 0)
        {
            StackTraceLogType stackTraceLogType = Application.GetStackTraceLogType(LogType.Log);

            Application.SetStackTraceLogType(LogType.Log, stacktrace);
            Debug.LogWarning(message, context);
            Application.SetStackTraceLogType(LogType.Log, stackTraceLogType);
        }
예제 #8
0
        public static void Log(object message, StackTraceLogType stacktrace = 0)
        {
            StackTraceLogType stackTraceLogType = Application.GetStackTraceLogType(LogType.Log);

            Application.SetStackTraceLogType(LogType.Log, stacktrace);
            Debug.Log(message);
            Application.SetStackTraceLogType(LogType.Log, stackTraceLogType);
        }
        //----- property -----

        //----- method -----

        public DisableStackTraceScope(LogType logType)
        {
            this.logType = logType;

            stackTraceLogType = Application.GetStackTraceLogType(logType);

            Application.SetStackTraceLogType(logType, StackTraceLogType.None);
        }
예제 #10
0
 /// <summary>
 /// Sets script logging options for standalone build
 /// </summary>
 /// <param name="logType"></param>
 public static void SetScriptLoggingParams(StackTraceLogType logType)
 {
     PlayerSettings.SetStackTraceLogType(LogType.Assert, logType);
     PlayerSettings.SetStackTraceLogType(LogType.Error, logType);
     PlayerSettings.SetStackTraceLogType(LogType.Exception, logType);
     PlayerSettings.SetStackTraceLogType(LogType.Log, logType);
     PlayerSettings.SetStackTraceLogType(LogType.Warning, logType);
 }
예제 #11
0
    static int SetStackTraceLogType(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        LogType           arg0 = LuaScriptMgr.GetNetObject <LogType>(L, 1);
        StackTraceLogType arg1 = LuaScriptMgr.GetNetObject <StackTraceLogType>(L, 2);

        Application.SetStackTraceLogType(arg0, arg1);
        return(0);
    }
예제 #12
0
    static int SetStackTraceLogType(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        LogType           arg0 = (LogType)LuaScriptMgr.GetNetObject(L, 1, typeof(LogType));
        StackTraceLogType arg1 = (StackTraceLogType)LuaScriptMgr.GetNetObject(L, 2, typeof(StackTraceLogType));

        Application.SetStackTraceLogType(arg0, arg1);
        return(0);
    }
예제 #13
0
    private static int GetStackTraceLogType(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 1);
        LogType           logType           = (LogType)((int)LuaScriptMgr.GetNetObject(L, 1, typeof(LogType)));
        StackTraceLogType stackTraceLogType = Application.GetStackTraceLogType(logType);

        LuaScriptMgr.Push(L, stackTraceLogType);
        return(1);
    }
예제 #14
0
    private static int SetStackTraceLogType(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        LogType           logType        = (LogType)((int)LuaScriptMgr.GetNetObject(L, 1, typeof(LogType)));
        StackTraceLogType stackTraceType = (StackTraceLogType)((int)LuaScriptMgr.GetNetObject(L, 2, typeof(StackTraceLogType)));

        Application.SetStackTraceLogType(logType, stackTraceType);
        return(0);
    }
예제 #15
0
    static int GetStackTraceLogType(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 1);
        LogType           arg0 = (LogType)LuaScriptMgr.GetNetObject(L, 1, typeof(LogType));
        StackTraceLogType o    = Application.GetStackTraceLogType(arg0);

        LuaScriptMgr.Push(L, o);
        return(1);
    }
        /// <summary>
        /// Set the log stack trace type.
        /// </summary>
        /// <param name="logType">Stack trace logging option.</param>
        public static void SetLogStackTracing(StackTraceLogType logType)
        {
            var logTypes = new LogType[] { LogType.Assert, LogType.Error, LogType.Exception, LogType.Log, LogType.Warning };

            foreach (var type in logTypes)
            {
                Application.SetStackTraceLogType(type, logType);
            }
        }
        public static void DeactivateLogTrace()
        {
#if UNITY_5_4
            _log_type_backup = Application.GetStackTraceLogType(LogType.Log);
            Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None);
#elif UNITY_5_3
            _log_type_backup = Application.stackTraceLogType;
            Application.stackTraceLogType = StackTraceLogType.None;
#endif
        }
예제 #18
0
 private static void EnterLog(LogType type = LogType.Log, StackTraceLogType stack = StackTraceLogType.None)
 {
     #if UNITY_5_4_OR_NEWER
     currentTrace = Application.GetStackTraceLogType(type);
     Application.SetStackTraceLogType(type, stack);
     #else
     currentTrace = Application.stackTraceLogType;
     Application.stackTraceLogType = stack;
     #endif
 }
 /// <summary>
 /// Formats and logs the given message to the Unity console and player log if verbose logging is enabled.
 /// Note that verbose logs do not include the callstack
 /// </summary>
 public static void LogVerboseFormat(string message, params object[] args)
 {
     if (LogLevel <= LoggingLevel.Verbose)
     {
         // Save/restore the previous stack trace configuration, rather than assuming that
         // it's the default (StackTraceLogType.ScriptOnly)
         StackTraceLogType stackTraceLogType = Application.GetStackTraceLogType(LogType.Log);
         Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None);
         Debug.LogFormat(message, args);
         Application.SetStackTraceLogType(LogType.Log, stackTraceLogType);
     }
 }
예제 #20
0
 private static void BackupStackTrace(LogType logType)
 {
                 #if UNITY_EDITOR
                         #if UNITY_5_4_OR_NEWER
     oldLogType           = logType;
     oldStackTraceLogType = PlayerSettings.GetStackTraceLogType(logType);
     PlayerSettings.SetStackTraceLogType(logType, StackTraceLogType.None);
                         #elif UNITY_5
     oldStackTraceLogType          = Application.stackTraceLogType;
     Application.stackTraceLogType = StackTraceLogType.None;
                         #endif
                 #endif
 }
예제 #21
0
 public void AddItemsToMenu(GenericMenu menu)
 {
     if (Application.platform == RuntimePlatform.OSXEditor)
     {
         menu.AddItem(new GUIContent("Open Player Log"), false, new GenericMenu.MenuFunction(InternalEditorUtility.OpenPlayerConsole));
     }
     menu.AddItem(new GUIContent("Open Editor Log"), false, new GenericMenu.MenuFunction(InternalEditorUtility.OpenEditorConsole));
     foreach (int num in Enum.GetValues(typeof(StackTraceLogType)))
     {
         StackTraceLogType stackTraceLogType = (StackTraceLogType)num;
         menu.AddItem(new GUIContent("Stack Trace Logging/" + (object)stackTraceLogType), Application.stackTraceLogType == stackTraceLogType, new GenericMenu.MenuFunction2(this.ToggleLogStackTraces), (object)stackTraceLogType);
     }
 }
예제 #22
0
        public static void LogError(string msg, bool hasStacktrace = false)
        {
            if (LogAction != null)
            {
                LogAction(Level.Error, msg);
                return;
            }

            StackTraceLogType type = Application.GetStackTraceLogType(LogType.Error);

            Application.SetStackTraceLogType(LogType.Error, StackTraceLogType.None);
            Debug.LogError(msg, hasStacktrace ? FindScriptByMsg(msg) : null);
            Application.SetStackTraceLogType(LogType.Error, type);
        }
예제 #23
0
        private void AddStackTraceLoggingMenu(GenericMenu menu)
        {
            using (IEnumerator enumerator = Enum.GetValues(typeof(LogType)).GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    LogType logType = (LogType)((int)enumerator.Current);
                    using (IEnumerator enumerator2 = Enum.GetValues(typeof(StackTraceLogType)).GetEnumerator())
                    {
                        while (enumerator2.MoveNext())
                        {
                            StackTraceLogType stackTraceLogType = (StackTraceLogType)((int)enumerator2.Current);
                            ConsoleWindow.StackTraceLogTypeData stackTraceLogTypeData;
                            stackTraceLogTypeData.logType           = logType;
                            stackTraceLogTypeData.stackTraceLogType = stackTraceLogType;
                            menu.AddItem(new GUIContent(string.Concat(new object[]
                            {
                                "Stack Trace Logging/",
                                logType,
                                "/",
                                stackTraceLogType
                            })), PlayerSettings.GetStackTraceLogType(logType) == stackTraceLogType, new GenericMenu.MenuFunction2(this.ToggleLogStackTraces), stackTraceLogTypeData);
                        }
                    }
                }
            }
            int num = (int)PlayerSettings.GetStackTraceLogType(LogType.Log);

            using (IEnumerator enumerator3 = Enum.GetValues(typeof(LogType)).GetEnumerator())
            {
                while (enumerator3.MoveNext())
                {
                    LogType logType2 = (LogType)((int)enumerator3.Current);
                    if (PlayerSettings.GetStackTraceLogType(logType2) != (StackTraceLogType)num)
                    {
                        num = -1;
                        break;
                    }
                }
            }
            using (IEnumerator enumerator4 = Enum.GetValues(typeof(StackTraceLogType)).GetEnumerator())
            {
                while (enumerator4.MoveNext())
                {
                    StackTraceLogType stackTraceLogType2 = (StackTraceLogType)((int)enumerator4.Current);
                    menu.AddItem(new GUIContent("Stack Trace Logging/All/" + stackTraceLogType2), num == (int)stackTraceLogType2, new GenericMenu.MenuFunction2(this.ToggleLogStackTracesForAll), stackTraceLogType2);
                }
            }
        }
예제 #24
0
        public SetStackTraceLogTypeScope(StackTraceLogType stackTraceLogType)
        {
            m_isAll = true;
            m_oldStackTraceLogTypeError   = Application.GetStackTraceLogType(LogType.Error);
            m_oldStackTraceLogTypeAssert  = Application.GetStackTraceLogType(LogType.Assert);
            m_oldStackTraceLogTypeWarning = Application.GetStackTraceLogType(LogType.Warning);
            m_oldStackTraceLogTypeLog     = Application.GetStackTraceLogType(LogType.Log);
            m_oldStackTraceLogTypeExceptionTraceLogType = Application.GetStackTraceLogType(LogType.Exception);

            Application.SetStackTraceLogType(LogType.Error, stackTraceLogType);
            Application.SetStackTraceLogType(LogType.Assert, stackTraceLogType);
            Application.SetStackTraceLogType(LogType.Warning, stackTraceLogType);
            Application.SetStackTraceLogType(LogType.Log, stackTraceLogType);
            Application.SetStackTraceLogType(LogType.Exception, stackTraceLogType);
        }
    private static int set_stackTraceLogType(IntPtr L)
    {
        int result;

        try
        {
            StackTraceLogType stackTraceLogType = (int)ToLua.CheckObject(L, 2, typeof(StackTraceLogType));
            Application.set_stackTraceLogType(stackTraceLogType);
            result = 0;
        }
        catch (Exception e)
        {
            result = LuaDLL.toluaL_exception(L, e, null);
        }
        return(result);
    }
예제 #26
0
            void OnEnable()
            {
                if (get != null && get != this)
                {
                    StackTraceLogType saveType = Application.GetStackTraceLogType(LogType.Warning);
                    Application.SetStackTraceLogType(LogType.Warning, StackTraceLogType.None);
                    Debug.LogWarning("LowPoly_PlanarReflection script is already asigned to '" + get.gameObject.name + "'", get.gameObject);
                    Application.SetStackTraceLogType(LogType.Warning, saveType);

                    enabled = false;
                    return;
                }
                else
                {
                    get = this;
                }
            }
예제 #27
0
        private void LogMessage(MessageEventArgs messageEventArgs)
        {
            byte[]  bytes   = messageEventArgs.data.Skip(4).ToArray <byte>();
            string  text    = Encoding.UTF8.GetString(bytes);
            LogType logType = (LogType)messageEventArgs.data[0];

            if (!Enum.IsDefined(typeof(LogType), logType))
            {
                logType = LogType.Log;
            }
            StackTraceLogType stackTraceLogType = Application.GetStackTraceLogType(logType);

            Application.SetStackTraceLogType(logType, StackTraceLogType.None);
            string connectionIdentifier = ProfilerDriver.GetConnectionIdentifier(messageEventArgs.playerId);

            text = "<i>" + connectionIdentifier + "</i> " + text;
            Debug.unityLogger.Log(logType, text);
            Application.SetStackTraceLogType(logType, stackTraceLogType);
        }
예제 #28
0
    public static int GetStackTraceLogType_s(IntPtr l)
    {
        int result;

        try
        {
            LogType logType;
            LuaObject.checkEnum <LogType>(l, 1, out logType);
            StackTraceLogType stackTraceLogType = Application.GetStackTraceLogType(logType);
            LuaObject.pushValue(l, true);
            LuaObject.pushEnum(l, (int)stackTraceLogType);
            result = 2;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
예제 #29
0
        //LogError, with optional stacktracetype
        public void LogWarning(string log, StackTraceLogType type = StackTraceLogType.ScriptOnly, string stackTraceOverride = null)
        {
            StackTraceLogType defaultType = Application.GetStackTraceLogType(LogType.Warning);

            Application.SetStackTraceLogType(LogType.Warning, type);

            if (stackTraceOverride != null)
            {
                Debug.LogWarning("[Snek] " + log + "\n\n" + stackTraceOverride);
            }
            else
            {
                Debug.LogWarning("[Snek] " + log);
            }

            Application.SetStackTraceLogType(LogType.Warning, defaultType);

            if (OnLogWarning != null)
            {
                OnLogWarning(log);
            }
        }
예제 #30
0
        void IHasCustomMenu.AddItemsToMenu(GenericMenu menu)
        {
            Utility.AddNGMenuItems(menu, this, NGConsoleWindow.Title, NGTools.NGConsole.NGAssemblyInfo.WikiURL);

            if (Application.platform == RuntimePlatform.OSXEditor)
            {
                menu.AddItem(new GUIContent("Open Player Log"), false, new GenericMenu.MenuFunction(InternalEditorUtility.OpenPlayerConsole));
            }
            menu.AddItem(new GUIContent("Open Editor Log"), false, new GenericMenu.MenuFunction(InternalEditorUtility.OpenEditorConsole));

            Array stackTraceLogTypeValues = Enum.GetValues(typeof(StackTraceLogType));
            Array logTypeValues           = Enum.GetValues(typeof(UnityEngine.LogType));

            try
            {
                for (int i = 0; i < logTypeValues.Length; i++)
                {
                    UnityEngine.LogType logType = (UnityEngine.LogType)((int)logTypeValues.GetValue(i));

                    for (int j = 0; j < stackTraceLogTypeValues.Length; j++)
                    {
                        //while (enumerator.MoveNext())
                        StackTraceLogType stackTraceLogType = (StackTraceLogType)((int)stackTraceLogTypeValues.GetValue(j));
                        menu.AddItem(new GUIContent("Stack Trace Logging/" + logType + "/" + stackTraceLogType), Application.GetStackTraceLogType(logType) == stackTraceLogType,
                                     () => {
                            Application.SetStackTraceLogType(logType, stackTraceLogType);
                        });
                    }
                }
            }
            finally
            {
                IDisposable disposable = stackTraceLogTypeValues as IDisposable;
                if (disposable != null)
                {
                    disposable.Dispose();
                }
            }
        }
예제 #31
0
 public static extern void SetStackTraceLogType(LogType logType, StackTraceLogType stackTraceType);