Esempio n. 1
0
    /// <summary>
    /// Вывести сообщение в GUI консоль. Создается при первом обращении.
    ///
    /// </summary>
    /// <param name="message">Сообщение - любой обьект унаследованный от object</param>
    /// <param name="group">Название вкладки в которую выводится сообщение. Создает если ее нет</param>
    /// <param name="type">Тип сообщение для фильтрации по умолчанию Log</param>
    /// <param name="position">В какой строке консоли вывести сообщение. -1 -выводится на следующей строке</param>
    /// <param name="color">Цвет сообщения в консоле по умолчанию цвет соответствует типу</param>
    public static void Log(object message, string group, LogType type, int position, Color color)
    {
#if TEST_VERSION
#if UNITY_EDITOR
        if (group.Equals("General"))
        {
            switch (type)
            {
            case LogType.Error:
                Debug.LogError(message);
                break;

            case LogType.Warning:
                Debug.LogWarning(message);
                break;

            default:
                Debug.Log(message);
                break;
            }
            return;
        }
        #endif
        #if UNITY_STANDALONE || UNITY_IOS || UNITY_ANDROID
        #endif
        if (instance == null)
        {
            Init();
        }
        if (color == (Color)Vector4.zero)
        {
            color = instance.GetColorFromType(type);
        }

        if (!instance.lineDictionary.ContainsKey(group))
        {
            instance.lineDictionary.Add(group, new List <DebugMessageLine> ());
            if (instance.showGroup == null)
            {
                instance.showGroup = group;
            }
        }
        if (position != -1)
        {
            DebugMessageLine newLine = new DebugMessageLine();
            newLine.message   = message.ToString();
            newLine.color     = color;
            newLine.count     = 1;
            newLine.type      = type;
            newLine.deltaTime = instance.averageDeltaTime;

            for (int i = instance.lineDictionary[group].Count - 1; i < position; i++)
            {
                instance.lineDictionary[group].Add(new DebugMessageLine());
            }
            instance.lineDictionary[group][position] = newLine;
        }
        else
        if (!instance.ChkEquals(message, color, group))
        {
            DebugMessageLine newLine = new DebugMessageLine();
            newLine.message   = message.ToString();
            newLine.color     = color;
            newLine.count     = 1;
            newLine.type      = type;
            newLine.deltaTime = instance.averageDeltaTime;

            instance.lineDictionary[group].Add(newLine);


            if (instance.lineDictionary[group].Count > instance.messageCount)
            {
                instance.lineDictionary[group].RemoveAt(0);
            }
        }
        else
        {
        }
        #endif
    }