유니티 시스템 프로그래밍(1)

Youngmin Go·2024년 9월 5일
0
post-custom-banner

유니티 시스템 프로그래밍이라는 인프런의 강의를 보고 학습하는 내용을 정리하고 기록하는 글입니다.

색션 1은 오리엔테이션으로 강의 소개와 개발 환경 세팅으로 이루어져 있어 딱히 정리할것은 없는것같았습니다

색션 2는 주요 씬(Scene) 설계로
효율적인 씬 구성, Logger, SingletonBehavior, SceneLoader, Title,Lobby,InGame 씬 생성 으로 이루어져 있었습니다.

이번 강의에서 흥미로웠던 부분은 씬을 어떻게 구성하느냐에 대한 부분이었습니다. 프로젝트에 맞게 효율적으로 씬을 나누는 것이 중요하다는 것을 깨달았습니다. 보통 Title, Lobby, InGame 같은 씬으로 나누어 설계하는 것이 효과적이라고 하는데, 이는 프로젝트의 유지 보수성과 확장성을 고려했을 때 유용합니다. 제가 저번에 작업한 프로젝트에서는 하나의 씬에서 UIManager를 통해 타이틀, 로비, 인게임을 처리했는데, 이 방식은 데이터 처리와 동적 생성의 복잡성 때문에 점점 어려워졌습니다. 씬을 분리하여 각 씬에 맞는 기능과 데이터를 관리했다면 더 나은 결과를 얻을 수 있었을 것이라는 생각이 듭니다.

또한, SingletonBehavior와 SceneLoader는 이전 프로젝트에서 사용해본 경험이 있어 이해가 쉬웠습니다. SingletonBehavior는 전역적으로 접근 가능한 단일 인스턴스를 생성하는 패턴으로, 다양한 시스템 간의 일관성을 유지하는 데 유용했습니다. SceneLoader는 씬 간 전환을 관리하는 데 필수적인 요소로, 프로젝트의 흐름을 원활하게 해주는 도구였습니다.

반면, Logger는 이전에 사용해본 적이 없어서 신선한 경험이었습니다. 기존에는 Debug.log를 사용하여 문제를 해결해왔는데, Logger를 활용하면 에러나 문제를 보다 체계적으로 기록하고 분석할 수 있어, 문제 해결이 더 효율적일 것이라는 생각이 됩니다. 또한 Logger를 통해 로그를 관리하면 프로젝트의 디버깅과 유지 보수 과정에서 큰 도움이 될 것 같습니다.

이번 색션을 통해 배운 내용은 향후 프로젝트에서 실질적으로 적용할 수 있는 중요한 기술과 개념들이었으며, 실제 개발 과정에서의 문제 해결 능력을 한층 향상시킬 수 있을 것으로 기대됩니다.

public static void Log(string msg)
{
    UnityEngine.Debug.LogFormat("[{0}] {1}", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), msg);
}

[Conditional("DEV_VER")]
public static void LogWarning(string msg)
{
    UnityEngine.Debug.LogWarningFormat("[{0}] {1}", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), msg);
}

public static void LogError(string msg)
{
    UnityEngine.Debug.LogErrorFormat("[{0}] {1}", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), msg);
}
post-custom-banner

0개의 댓글