/// <summary> /// Performs the underlining write to the Unity Console /// </summary> /// <param name="levels">The levels.</param> /// <param name="message">The message.</param> /// <param name="args">The arguments.</param> //protected abstract void Write(LogLevels levels, string message, object[] args); protected void Write(LogLevels levels, string message, object[] args) { string formattedMessage = (args != null && args.Length > 0) ? string.Format(CultureInfo.InvariantCulture, message, args) : message; string internalMessage = CreateMessage(levels, formattedMessage); if (levels.Has(LogLevels.Info) || levels.Has(LogLevels.Debug) || levels.Has(LogLevels.Trace)) { UnityEngine.Debug.Log(internalMessage); } else if (levels.Has(LogLevels.Warn)) { UnityEngine.Debug.LogWarning(internalMessage); } else if (levels.Has(LogLevels.Error) || levels.Has(LogLevels.Fatal)) { UnityEngine.Debug.LogError(internalMessage); } else if (levels.Has(LogLevels.Assert)) { UnityEngine.Assertions.Assert.IsTrue(false, internalMessage); } }