일단 Debug.Log를 사용할 시 여러개가 섞여 주석처리 해주고 풀고 해야하는 번거로움이 존재하기에 아래와 같이 만들어준다
using System.Collections.Generic;
using UnityEngine;
public enum LogCategory
{
Player,
PlayerSkill,
Enemy,
Combat,
Inventory,
UI
}
public static class DebugLog
{
// 호출하고 싶은 클래스 예) Player일 시 Player만 출력, 아래처럼 할 시 3개만 출력
private static readonly HashSet<LogCategory> ActiveCategories = new()
{
LogCategory.Player,
LogCategory.PlayerSkill,
LogCategory.Combat,
};
static string GetColor(LogCategory category) => category switch
{
LogCategory.Player or LogCategory.PlayerSkill => "cyan",
LogCategory.Enemy => "red",
LogCategory.Combat => "orange",
LogCategory.Inventory => "yellow",
LogCategory.UI => "lime",
_ => "white"
};
public static void Log(LogCategory category, string message = "")
{
if (!ActiveCategories.Contains(category)) return;
Debug.Log($"<color={GetColor(category)}>[{category}]</color> {message}");
}
}
저기서 사용법은 아래와같다
맨 위 using static DebugLog; 추가해주는거 까먹지말자 그래야 아래와같이 DebugLog. 생략 가능
public bool CanUse()
{
if (IsOnCooldown)
{
Log(LogCategory.PlayerSkill, $"On cooldown: {CooldownRemaining:F1}s remaining");
return false;
}
if (currentCharges <= 0)
{
Log(LogCategory.PlayerSkill, "No charges remaining");
return false;
}
return true;
}

'게임엔진 > Unity' 카테고리의 다른 글
| [Unity] 유니티 6 버전으로 구글 스토어 출시 방법 (0) | 2026.03.27 |
|---|---|
| [Unity] 커스텀 셰이더 UnityCG.cginc 헤더 파일 못찾는 이유 (0) | 2025.12.27 |
| [Unity] fps 로그창 GUI (0) | 2025.12.13 |
| [Unity] ServiceLocatorManager > 구조 변경 / indexer, Type (0) | 2025.11.30 |
| [Unity] 애니메이션 마지막 프레임에서 이벤트 호출안되는 이유 (0) | 2025.11.23 |