반응형

Event Manager 아이디어 (C# 예시 코드)

Event를 관리하는 Manager 시스템 구현 아이디어*Event : 특정 조건이 발생했을 때 알림을 보내는 기능, Delegate를 통해 구현됨 1. Event 보관 아이디어Event에 사용되는 Delegate는 다양한 종류의 인자를 가질 수 있습니다.Action, Action 혹은 Func 등 다양한 데이터를 보관하게 되는데이는 모두 Delegate라는 이름으로 보관이 가능합니다.(Action과 Func는 Delegate를 편하게 사용하기 위해 미리 만들어진 Delegate이기에 가능함) private Dictionary _eventDic = new Dictionary();public void Register(int eventType, T listener) where T : Delegate{ ..

프로그래밍 2025.08.11 1

Unity Cursor Ai - C# Dev Kit 설치 문제

상황1. 커서로 유니티 디버깅하려고 C# Dev Kit 설치함2. C# Dev Kit은 커서에서 지원을 안함3. 디버깅 못함 해결 방법1. C# Dev Kit을 대체하기 위해 만들어진게 있었음 DotRush, C# Extention 설치(정확한 정보인지는 모르겠으나.. 일단 해결은 됐습니다) 2. 유니티 프로젝트의 launch.json 파일 찾기{ "version": "0.2.0", "configurations": [ { "name": "Attach to Unity", "type": "unity", "request": "attach" }, { "name": "Attach to..

Unity 2025.08.05 2

ScriptableObject를 싱글톤으로 관리하기

Unity에서 ScriptableObject를 싱글톤으로 관리하기🎯 개요Unity 게임 개발 시 전역 데이터를 관리하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 MonoBehaviour를 상속받은 싱글톤 패턴이지만, 이는 씬 관리와 메모리 관리 측면에서 여러 문제점을 가지고 있습니다.ScriptableObject 싱글톤은 이러한 문제점을 해결하는 우아한 솔루션입니다.💡 왜 ScriptableObject 싱글톤인가?MonoBehaviour 싱글톤의 한계DontDestroyOnLoad로 인한 씬 관리 복잡성GameObject 의존성으로 인한 메모리 오버헤드씬 전환 시 발생할 수 있는 예기치 않은 이슈ScriptableObject 싱글톤의 장점✅ 씬 독립성: GameObject에 의존하지 않음✅..

Unity 2025.07.29 3

1863 스카이라인 쉬운거 (C#) [Gold IV]

도시에서 태양이 질 때 보이는 건물들의 윤곽을 스카이라인이라고 한다. 스카이라인만을 보고서 도시에 세워진 건물이 몇 채인지 알아 낼 수 있을까? 건물은 모두 직사각형 모양으로 밋밋하게 생겼다고 가정한다. 정확이 몇 개의 건물이 있는지 알아내는 것은 불가능하고, 건물이 최소한 몇 채인지 알아내는 것은 가능하다. 이를 알아내는 프로그램을 작성해보자. 입력1. 첫째 줄에 N이 주어진다.2. N개의 줄에 2개의 수가 입력되고 왼쪽의 수는 x좌표, 오른쪽 수는 y좌표이다.3. 입력되는 좌표값들의 의미는 스카이라인의 고도가 바뀌는 지점이다. 풀이 방법우리는 최소 빌딩 수를 찾아야하는 조건이 있기 때문에 높이가 같은 입력들을 하나로 묶어줘야 합니다. 하지만 높이가 같다고 해도 연결되어있지 않다면 하나로 묶을 수 없습..

백준 2025.07.02 0

7490 0 만들기 (C#) [Gold V]

1부터 N까지의 수를 오름차순으로 정렬한 후, 숫자 사이에 '+' , '-', ' '(공백)을 삽입하여 계산할 때, 0이되는 모든 수식을 찾아주세요공백은 숫자를 이어 붙이는 것을 의미합니다 ex) 1 2+3 4+5 6 => 12 + 34 + 56 풀이 방법이 문제는 모든 경우의 수를 탐색 해야하는 브루트포스 알고리즘 문제입니다.이런 경우에는 DFS를 사용하여 탐색하는게 편합니다. private void DFS(List answer, string str, int num, int total)str에 1부터 넣고 2 ~ N 까지 차례대로 넣어주며 모든 경우의 수를 탐색합니다. 경우의 수 1) str + $"+{num}" 경우의 수 2) str + $"-{num}"경우의 수 3) str + $"+{num}+{..

백준 2025.06.24 0

7682 틱택토 (C#) [Gold V]

틱택토 게임은 두 명의 사람이 번갈아가며 말을 놓는 게임입니다.게임 판의 최종 상태들을 입력으로 받을 때, 그 상태가 게임에서 발생할 수 있는 상태인지 판별해주세요.가능하다면 valid, 불가능하다면 invalid를 출력합니다. 풀이 방법이 문제는 여러 조건문을 통해 풀어야하는 문제입니다.조건 1) O가 X보다 1개 이상 많으면 안됨 조건 2) X가 O보다 2개 이상 많으면 안됨 조건 3) 완성된 형태가 없는데 빈칸이 있으면 안됨 조건 4) X가 이겼는데 개수가 같으면 안됨 조건 5) O가 이겼는데 개수가 다르면 안됨조건 6) O와 X가 완성한 줄이 각각 하나 이상씩 있으면 안됨 게임의 시작은 항상 X가 먼저 하기 때문에 O가 X보다 더 많이 둘 수 없습니다.또한, 서로 하나씩 두기 때문에 X가 O보..

백준 2025.06.17 1

1644 소수의 연속합 (C#) [Gold III]

숫자를 입력받을 때, 하나 이상의 연속된 소수의 합으로 표현할 수 있는 가지 수를 구해주세요.ex) N = 41 -> 2+3+5+7+11+13, 11+13+17, 41 (3개) 풀이 방법해당 문제는 에라토스테네스의 체 알고리즘과 투 포인터 알고리즘을 통해 풀 수 있습니다.우선, 에라토스테네스 알고리즘을 통해 모든 소수를 찾고, 찾은 소수들을 바탕으로 투 포인터 알고리즘으로 N을 만들 수 있는 모든 조합을 찾습니다. 에라토스테네스의 체bool[] visited = new bool[N+1];for (int i = 2; i * i primNums = new List();for (int i = 2; i 에라토스테네스의 체를 통해 구한 소수들을 List에 담아줍니다.2 ~ N의 제곱근까지만 연산을 수행하여..

백준 2025.06.15 0

14719 빗물 (C#) [Gold V]

2차원 세계의 세로 길이 H와 가로 길이 W가 주어지고, 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 배열로 주어질 때,빗물이 내리면 고이는 빗물의 총량을 출력하여라.(바닥은 항상 막혀있고, 양 옆은 막혀있지 않습니다) 풀이 방법Stack을 활용해서 풀이하는 방법을 공유하겠습니다. 내려가는 계단왼쪽부터 오른쪽으로 높이를 Stack에 넣으면서 계산을 합니다.1번, 2번, 3번을 넣고 4번을 넣을 때, Stack.Peek()의 값보다 현재 높이가 더 높습니다.즉, 빗물을 채울 수 있는 조건을 의미합니다. 빗물이 채워지기 위해서는 빗물이 채워지는 공간 양 옆에 블록 기둥이 필수적으로 있어야합니다.4번을 넣을 때에는 반대쪽 기둥의 높이를 알아야합니다. stack.Push(list[i]);maxH = M..

백준 2025.06.13 0

20437 문자열 게임 2 (C#) [Gold V]

양의 정수 K와 알파벳 소문자로 이루어진 문자열을 입력받을 때,(조건 1) 어떤 문자를 정확히 K개를 포함하는 가장 짧은 연속 문자열의 길이와(조건 2) 어떤 문자를 정확히 K개를 포함하며 첫 번째와 마지막 문자가 같은 연속된 문자열의 길이를 구해주세요.(구할 수 없다면 -1을 반환합니다.) 풀이 방법1. 문제의 함정조건 1과 조건 2는 탐색 방법이 다를 것 같지만 사실 그렇지 않습니다.조건 2는 첫 번째와 마지막 문자가 같다는 차이점이 보이지만, 조건 1도 마찬가지입니다."aaa", "baa", "aba" 조건 1은 모든 경우에서 조건 2와 마찬가지로 첫 번째 문자와 마지막 문자가 같습니다. 2. 시간초과 해결법문자열의 길이는 최대 1만, 문제의 수는 최대 100개 입니다.즉, N * N의 속도로 해..

백준 2025.06.09 0

16928 뱀과 사다리 게임 (C#) [Gold V]

뱀과 사다리 게임은 1부터 100까지의 숫자가 적힌 보드판에서 1에서 시작해서 100에 도착하는 게임이다.1부터 6까지 적힌 주사위를 굴려서 나온 수 만큼 이동할 수 있고, 사다리와 뱀을 만나면 연결된 위치로 이동하게 된다.이 때, 100번 칸에 도착하기 위해 주사위를 굴려야 하는 최소 횟수를 구해보자. 풀이 방법이 문제는 최단 거리를 찾는 문제입니다 저는 Dijkstra 알고리즘을 사용하여 풀었습니다. - 입력 처리static void Main(string[] args){ string[] inputs = Console.ReadLine().Split(' '); int N = int.Parse(inputs[0]); int M = int.Parse(inputs[1]); List la..

백준 2025.06.05 1

유니티 애널리틱스

Unity Analytics 완벽 가이드 20241. Unity Analytics란?Unity Analytics는 게임 개발자들이 플레이어의 행동과 게임 성능을 분석할 수 있게 해주는 종합적인 데이터 분석 플랫폼입니다. 실시간으로 데이터를 수집하고 분석하여 게임의 성공적인 운영과 개선을 위한 인사이트를 제공합니다.1.1 주요 기능실시간 플레이어 행동 추적상세한 게임 성능 분석사용자 세그먼테이션수익화 분석A/B 테스팅커스텀 이벤트 추적2. 왜 Unity Analytics를 사용해야 하나요?2.1 데이터 기반 의사결정플레이어 행동 패턴 이해게임 밸런싱 최적화수익화 전략 개선사용자 이탈 원인 파악게임 성능 최적화2.2 주요 분석 지표지표설명중요성DAU (Daily Active Users)일간 활성 사용자 수일..

Unity 2025.05.23 0

유니티 생명주기 - 코루틴

생명주기 심화: 코루틴의 실행 흐름코루틴(Coroutine)은 Unity의 생명주기와 밀접하게 연관된 강력한 비동기 프로그래밍 도구입니다. 코루틴을 사용하면 실행을 여러 프레임에 걸쳐 분산시킬 수 있으며, 이를 통해 무거운 작업을 수행하면서도 게임의 프레임 레이트를 유지할 수 있습니다.코루틴과 생명주기의 관계코루틴은 MonoBehaviour의 생명주기와 밀접하게 연결되어 있습니다:코루틴은 StartCoroutine()을 호출한 MonoBehaviour가 활성화된 상태에서만 실행됩니다.MonoBehaviour가 비활성화되면(OnDisable()), 실행 중인 모든 코루틴이 자동으로 일시 중지됩니다.MonoBehaviour가 다시 활성화되면(OnEnable()), 일시 중지된 코루틴이 자동으로 재개되지 않습..

Unity 2025.05.22 0

유니티의 생명주기

유니티 생명주기 완벽 가이드: 모노비헤이비어의 숨겨진 비밀목차들어가며생명주기 개요초기화 단계물리 연산 단계메인 업데이트 단계렌더링 단계비활성화/파괴 단계마치며들어가며Unity 개발자라면 Start(), Update()와 같은 메서드들을 사용해 본 경험이 있을 것입니다. 하지만 이러한 메서드들이 정확히 언제, 어떤 순서로 호출되는지, 그리고 이를 어떻게 효과적으로 활용할 수 있는지 깊이 이해하는 개발자는 많지 않습니다. 본 글에서는 Unity의 생명주기를 세밀하게 분석하고, 실제 게임 개발 과정에서 이를 최적화하는 방법을 소개합니다.생명주기 개요Unity의 생명주기는 크게 5단계로 나눌 수 있습니다:초기화 단계: 오브젝트 생성 및 초기 설정물리 연산 단계: 물리 엔진 계산 수행메인 업데이트 단계: 게임 로..

Unity 2025.05.21 0

FishNet 사용법

FishNet 멀티플레이어 네트워킹 가이드 1. FishNet 소개 FishNet은 Unity를 위한 고성능 멀티플레이어 네트워킹 프레임워크입니다. 클라이언트-서버 아키텍처를 기반으로 하며, P2P 네트워킹도 지원합니다. 2. 기본 설정 2.1 필수 컴포넌트 // NetworkManager 프리팹에 필요한 컴포넌트들- NetworkManager- ServerManager- ClientManager- TransportManager- SceneManager 2.2 초기 설정 // NetworkManager 설정1. NetworkManager 프리팹 생성2. Transport 설정 (기본값: KCP)3. ServerManager와..

Unity 2025.05.20 0

Unity 렌더링 파이프라인

Unity 렌더링 파이프라인 이해하기 1. 렌더링 파이프라인이란? 렌더링 파이프라인은 3D 그래픽을 2D 화면에 그리는 과정을 정의하는 시스템입니다. Unity에서는 크게 두 가지 렌더링 파이프라인을 제공합니다: Built-in Render Pipeline (기본 렌더링 파이프라인) Universal Render Pipeline (URP, 범용 렌더링 파이프라인) 2. Universal Render Pipeline (URP) URP는 Unity의 최신 렌더링 파이프라인으로, 다양한 플랫폼에서 최적화된 그래픽을 제공합니다. 현재 프로젝트에서도 URP를 사용하고 있음을 확인할 수..

Unity 2025.05.19 0
반응형