Unity 학습 — Unity_File_UI 간단 요약

공재원
∙∙조회 8

Unity 학습 — Unity_File_UI


1. Unity UI 시스템

구현 기능관련 스크립트학습 내용
UI 컴포넌트 제어UIItemInfo, UICharacterInfoTextMeshPro 텍스트 및 Image 변경
UI 버튼 이벤트StartWindow, CSVTest1, CSVTest2Button 클릭 이벤트 등록
UI 활성화 및 비활성화GenericWindowSetActive()를 이용한 화면 전환
UI 창 관리WindowManager여러 UI 창의 초기화 및 전환
UI 상속 구조GenericWindow, StartWindow, GameOverWindow공통 UI 기능을 부모 클래스로 분리
선택 UI 제어DifficultyWindowToggle 상태 확인 및 변경
키보드 입력 UIKeyboardWindow버튼 입력, 문자열 관리, 커서 표시
게임 오버 UIGameOverWindow점수 및 통계 정보 표시

핵심 학습 개념

  • Button.onClick.AddListener()를 이용한 이벤트 등록
  • TMP_Text.text를 이용한 텍스트 변경
  • Image.sprite를 이용한 이미지 변경
  • GameObject.SetActive()를 이용한 UI 표시 및 숨김
  • EventSystem을 이용한 UI 선택 상태 관리
  • 부모 클래스와 자식 클래스를 이용한 UI 구조 설계

2. CSV 데이터 관리

구현 기능관련 스크립트학습 내용
CSV 데이터 읽기DataTableCsvHelper를 이용한 CSV 파싱
데이터 클래스 설계ItemData, CharacterDataCSV 데이터를 C# 객체로 변환
데이터 테이블ItemTable, CharacterTable, StringTable데이터 저장 및 조회
테이블 관리자DataTableManager여러 데이터 테이블의 통합 관리
데이터 검색ItemTable, CharacterTableID를 이용한 데이터 조회
중복 데이터 검사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. 파일 입출력 및 데이터 저장

구현 기능관련 스크립트학습 내용
파일 경로 관리FilePathExampleUnity 파일 경로 확인
바이너리 파일 입출력FileStreamExample바이트 단위 읽기 및 쓰기
폴더 생성 및 관리Practice1폴더 생성 및 파일 목록 조회
파일 복사 및 삭제Practice1파일 복사, 삭제
간단한 암호화Practice2XOR 연산을 이용한 암호화 및 복호화
설정 파일 관리Practice3설정 파일 읽기 및 저장
문자열 파일 입출력Practice3StreamReader, StreamWriter 사용

핵심 학습 개념

  • Application.persistentDataPath
  • Application.dataPath
  • Application.streamingAssetsPath
  • Path.Combine()
  • Directory, File
  • FileStream, Stream
  • StreamReader, StreamWriter
  • using을 이용한 파일 자원 관리
  • File.Exists(), Directory.Exists()

5. 게임 설정 및 사용자 데이터 관리

구현 기능관련 스크립트학습 내용
난이도 선택DifficultyWindowToggle을 이용한 난이도 설정
난이도 저장DifficultyWindowPlayerPrefs를 이용한 설정 저장
키보드 입력DifficultyWindow, KeyboardWindow키 입력에 따른 UI 조작
게임 상태 전환WindowManager현재 UI 창과 다음 UI 창 관리

핵심 학습 개념

  • PlayerPrefs.SetInt(), PlayerPrefs.GetInt()
  • Input.GetKeyDown()
  • KeyCode
  • Mathf.Repeat()을 이용한 선택 순환
  • enum을 이용한 상태 관리

6. 코루틴과 시간 기반 UI 연출

구현 기능관련 스크립트학습 내용
코루틴 실행GameOverWindowStartCoroutine()
시간 지연GameOverWindowWaitForSeconds()
프레임 단위 실행GameOverWindowyield return null
점수 애니메이션GameOverWindowMathf.Lerp()를 이용한 점수 증가 연출
코루틴 중지GameOverWindowStopCoroutine()

최종 정리

  1. Unity UI 시스템 및 UI 창 관리
  2. CSV 기반 데이터 테이블 관리
  3. 다국어 지원 시스템
  4. 파일 입출력 및 저장 시스템
  5. 게임 설정 및 사용자 입력 처리
  6. 코루틴을 이용한 UI 연출