Unity로 오목 만들기 – Part 1: 환경 설정 및 기획
🎯 프로젝트 소개
저는 앞으로 언리얼 엔진으로 고성능 게임 개발에 도전할 계획입니다.
그 첫걸음으로 비교적 간단한 오목 게임을 Unity로 만들어 보며 게임 개발 워크플로우를 익히고자 합니다.
🎮 왜 Unity인가?
- 간단함: 언리얼 엔진보다 진입 장벽이 낮아 초보자가 빠르게 시작하기에 적합
- 빠른 프로토타이핑: 오목 같은 2D 게임을 구현하기에 충분한 기능 제공
🛠️ 개발 환경 세팅
1️⃣ Unity 설치
- Unity Hub 다운로드 → Unity 다운로드
- Unity Hub 실행 → Installs → Add version → Unity 2023.3 LTS 선택
- Windows/macOS Build Support 체크 후 설치
2️⃣ Rider 설치
- JetBrains Rider 다운로드 → Rider 다운로드
- C# 코드 작성과 Unity 통합 지원이 우수하여 선택
🎮 기능 정의 (Scope)
- 보드 그리기 (15×15 그리드)
- 돌 놓기 (클릭 시 돌 생성)
- 승리 판정 (가로·세로·대각선 5연속 체크)
📊 다이어그램
클래스 다이어그램
classDiagram
    class BoardManager {
        +int boardSize
        +GameObject blackStonePrefab
        +GameObject whiteStonePrefab
        +float cellSize
        +Vector2 boardOrigin
        -int[,] board
        -bool isBlackTurn
        +void Start()
        +void Update()
        +Vector2Int WorldToGrid(Vector2)
        +Vector3 GridToWorld(Vector2Int)
        +bool IsInBounds(Vector2Int)
        +void PlaceStone(Vector2Int)
        +bool IsValid(Vector2Int)
        +int GetBoardValue(Vector2Int)
    }
    class GameManager {
        +BoardManager boardManager
        +Text statusText
        -bool isGameOver
        +void Start()
        +void OnStonePlaced(int, Vector2Int)
        -bool CheckWin(Vector2Int, int)
        -int CountDirection(Vector2Int, Vector2Int, int)
    }
    class Stone {
        +int player
        +Vector2Int gridPos
    }
    class AIPlayer {
        <<empty>>
    }
    BoardManager --> Stone : instantiates
    BoardManager --> GameManager : notifies via OnStonePlaced
    GameManager --> BoardManager : queries board state
플로우차트
flowchart TD
    Start([게임 시작])
    Click[클릭 대기]
    Place[돌 생성]
    Check[승리 판정?]
    Win[승리 알림]
    Switch[턴 교체]
    End([게임 종료])
    Start --> Click
    Click --> Place
    Place --> Check
    Check -->|Yes| Win --> End
    Check -->|No| Switch --> Click
 
    
댓글