Unity 학습 — Unity_File_UI 간단 요약
Unity 학습 — Unity_File_UI
1. Unity UI 시스템
| 구현 기능 | 관련 스크립트 | 학습 내용 |
|---|---|---|
| UI 컴포넌트 제어 | UIItemInfo, UICharacterInfo | TextMeshPro 텍스트 및 Image 변경 |
| UI 버튼 이벤트 | StartWindow, CSVTest1, CSVTest2 | Button 클릭 이벤트 등록 |
| UI 활성화 및 비활성화 | GenericWindow | SetActive()를 이용한 화면 전환 |
| UI 창 관리 | WindowManager | 여러 UI 창의 초기화 및 전환 |
| UI 상속 구조 | GenericWindow, StartWindow, GameOverWindow | 공통 UI 기능을 부모 클래스로 분리 |
| 선택 UI 제어 | DifficultyWindow | Toggle 상태 확인 및 변경 |
| 키보드 입력 UI | KeyboardWindow | 버튼 입력, 문자열 관리, 커서 표시 |
| 게임 오버 UI | GameOverWindow | 점수 및 통계 정보 표시 |
핵심 학습 개념
Button.onClick.AddListener()를 이용한 이벤트 등록TMP_Text.text를 이용한 텍스트 변경Image.sprite를 이용한 이미지 변경GameObject.SetActive()를 이용한 UI 표시 및 숨김EventSystem을 이용한 UI 선택 상태 관리- 부모 클래스와 자식 클래스를 이용한 UI 구조 설계
2. CSV 데이터 관리
| 구현 기능 | 관련 스크립트 | 학습 내용 |
|---|---|---|
| CSV 데이터 읽기 | DataTable | CsvHelper를 이용한 CSV 파싱 |
| 데이터 클래스 설계 | ItemData, CharacterData | CSV 데이터를 C# 객체로 변환 |
| 데이터 테이블 | ItemTable, CharacterTable, StringTable | 데이터 저장 및 조회 |
| 테이블 관리자 | DataTableManager | 여러 데이터 테이블의 통합 관리 |
| 데이터 검색 | ItemTable, CharacterTable | ID를 이용한 데이터 조회 |
| 중복 데이터 검사 | ItemTable, CharacterTable | 중복 ID 확인 |
| 랜덤 데이터 조회 | ItemTable, CharacterTable | 무작위 데이터 반환 |
핵심 학습 개념
CsvHelper를 이용한 CSV 데이터 읽기Resources.Load<TextAsset>()를 이용한 CSV 파일 불러오기Dictionary<TKey, TValue>를 이용한 데이터 관리- ID를 이용한 데이터 검색
- 제네릭 메서드
LoadCSV<T>() - 추상 클래스와 메서드
DataTable,Load() static클래스를 이용한 데이터 관리자 구성
3. 다국어 지원 시스템
| 구현 기능 | 관련 스크립트 | 학습 내용 |
|---|---|---|
| 문자열 테이블 | StringTable | 문자열 ID와 번역 문장 관리 |
| 다국어 설정 | Defines | 한국어, 영어, 일본어 구분 |
| 언어 변경 | DataTableManager | 언어에 맞는 문자열 테이블 교체 |
| UI 자동 갱신 | LocalizationText | 언어 변경 시 UI 텍스트 갱신 |
| 이벤트 기반 갱신 | Defines, LocalizationText | 언어 변경 이벤트 구독 및 해제 |
핵심 학습 개념
enum을 이용한 언어 구분event와Action을 이용한 이벤트 전달OnEnable()과OnDisable()에서 이벤트 등록 및 해제Resources.Load()를 이용한 언어별 데이터 로드- 전처리기
#if UNITY_EDITOR [ExecuteInEditMode],[RequireComponent],[ContextMenu]
4. 파일 입출력 및 데이터 저장
| 구현 기능 | 관련 스크립트 | 학습 내용 |
|---|---|---|
| 파일 경로 관리 | FilePathExample | Unity 파일 경로 확인 |
| 바이너리 파일 입출력 | FileStreamExample | 바이트 단위 읽기 및 쓰기 |
| 폴더 생성 및 관리 | Practice1 | 폴더 생성 및 파일 목록 조회 |
| 파일 복사 및 삭제 | Practice1 | 파일 복사, 삭제 |
| 간단한 암호화 | Practice2 | XOR 연산을 이용한 암호화 및 복호화 |
| 설정 파일 관리 | Practice3 | 설정 파일 읽기 및 저장 |
| 문자열 파일 입출력 | Practice3 | StreamReader, StreamWriter 사용 |
핵심 학습 개념
Application.persistentDataPathApplication.dataPathApplication.streamingAssetsPathPath.Combine()Directory,FileFileStream,StreamStreamReader,StreamWriterusing을 이용한 파일 자원 관리File.Exists(),Directory.Exists()
5. 게임 설정 및 사용자 데이터 관리
| 구현 기능 | 관련 스크립트 | 학습 내용 |
|---|---|---|
| 난이도 선택 | DifficultyWindow | Toggle을 이용한 난이도 설정 |
| 난이도 저장 | DifficultyWindow | PlayerPrefs를 이용한 설정 저장 |
| 키보드 입력 | DifficultyWindow, KeyboardWindow | 키 입력에 따른 UI 조작 |
| 게임 상태 전환 | WindowManager | 현재 UI 창과 다음 UI 창 관리 |
핵심 학습 개념
PlayerPrefs.SetInt(),PlayerPrefs.GetInt()Input.GetKeyDown()KeyCodeMathf.Repeat()을 이용한 선택 순환enum을 이용한 상태 관리
6. 코루틴과 시간 기반 UI 연출
| 구현 기능 | 관련 스크립트 | 학습 내용 |
|---|---|---|
| 코루틴 실행 | GameOverWindow | StartCoroutine() |
| 시간 지연 | GameOverWindow | WaitForSeconds() |
| 프레임 단위 실행 | GameOverWindow | yield return null |
| 점수 애니메이션 | GameOverWindow | Mathf.Lerp()를 이용한 점수 증가 연출 |
| 코루틴 중지 | GameOverWindow | StopCoroutine() |
최종 정리
- Unity UI 시스템 및 UI 창 관리
- CSV 기반 데이터 테이블 관리
- 다국어 지원 시스템
- 파일 입출력 및 저장 시스템
- 게임 설정 및 사용자 입력 처리
- 코루틴을 이용한 UI 연출



