
https://docs.unity3d.com/kr/2022.3/Manual/UsingTheEditor.html
Unity 인터페이스 - Unity 매뉴얼
이 섹션에서는 가장 많이 사용되는 에디터 창과 각 창을 최대한 활용하는 방법에 대해 자세하게 설명합니다.
docs.unity3d.com
https://docs.unity3d.com/kr/current/Manual/UnityHotkeys.html
Unity 단축키 - Unity 매뉴얼
단축키 관리자는 Unity의 키보드 단축키를 관리하는 핵심 툴입니다. Mac 트랙패드에 대한 단축키도 설정할 수 있습니다.
docs.unity3d.com
협업 규칙
1. 에셋 관리 폴더 만들기
2. 깃 브랜치 전략
3. 씬 폴더 관리 방식
4. 깃 커밋 규칙 (동시 푸쉬 방지)
5. mamager값 수정할 때마다 말하기/ 싱글톤을 사용할 매니저정하기 게임,씬 : 싱글톤 필요 /값 수정이나 참조 가져올 때
6. 수정 부분에 있어서 바로 바로 상의하기 !
7. 커밋/푸쉬 순서
8. 파일이름 규칙
세션 7회차 : UI FrameWork
1. RectTransform : Canvas 로 넘어간 이후에 다~
설명 : 해상도, 앵커, 피봇 / 앵커 기준으로 크기 조절
특징 : 특정 Transform 으로 사용 X
주의 : 앵커 설정 중요
- Canvas 기준으로 따라가기 때문에 전체로 놓고 조절~ -> 스트레치로 설정하자.
Why? 좌우로 늘어나면 고정되는 부분이 변하니까
- UI로 게임 요소 X, UI로만 사용하자.
2. Anchor 의 사용 기준 : Anchor의 사용 위치를 잘 파악하기 (대칭 구조...)
사용 : Scree,safeArea에서 받아와서 사용! -> 노치, Screen 에서 설정 가능
공식적인 룰) Canvas - UI 거칠 루트 (새 폴더) - 자식으로 포함
ReccTransform rt = GetComponent<RectTransform>();
Vector2 anchorMin = safeArea.position;
Vector2 anchorMax = safeArea.position + safeArea.size;
anchorMin.x /= Screen.width;
anchorMin.y /= Screen.heigth;
anchorMax.x /= Screen.width;
anchorMax.y /= Screen.heigth;
...
- web 빌드와 pc 빌드만으로 테스트 충분하다.
4. Canvas 분리 전략
- Canvas 종류
- Canvas_Fixed: 고정 UI (상태창, 조이스틱 등)
- Canvas_Window: 창 형태 UI
- Canvas_Popup: 팝업 창
- Render Mode
- WorldSpace:
- 크기 축소 필요 (0.01)
- GraphicRaycaster 필수
- EventCamera 설정해야 UI 이벤트 처리 가능
- UI는 월드 단위 계산 → 카메라 거리·각도 영향 받음
- LookAt 처리 필요할 수 있음
- Build 시 주의 요소 많음
- WorldSpace:
- 문제 해결 Q&A
- Q: UI 터치가 안 먹혀요!
- A:
- GraphicRaycaster 있는지 확인
- EventSystem 존재 여부 확인
- 최적화란 사소한 점검부터!
- UI Scale Mode
- Scale with Screen Size 설정 꼭 확인!
Event System 구성 팁
- InputSystemUIInputModule로 교체 필요 (New Input System 기준)
- ActionMap을 Player / UI로 분리해서 관리하기
5. UI 기본 구조
- UI 구분
- FixedUI: 항상 존재 (HUD, 조이스틱 등)
- WindowUI: 열고 닫는 창
- PopupUI: 알림, 선택창 등
- 대표 UI 예시
- ConfirmPopup, Toast, Name UI
- 핵심 컴포넌트
- UIType: UI 종류 명시 (enum)
- UIManager: 전체 UI 관리
- BaseUI: 공통 UI 클래스
- UIPath: Resources 경로 저장용
- UIPool: UI 오브젝트 풀링
- BaseUI 구조
- 공통 기능 제공 (Init, Open, Close 등)
- UIManager 팁
- UIManager.Instance 남발하지 말고, Start() 등에서 변수로 저장해 사용
- 버튼 처리 팁
- Yes/No 버튼은 매개변수 분리
- or 파라미터용 클래스로 관리
- UIPath 사용 예시
- UIType.MainWindow → "UI/WindowUI/MainWindow"
- UIPool
- 재사용 가능한 UI를 풀링해서 성능 최적화
public class ConfirmParam
{
public string Title;
public string Message;
public bool ShowCancel;
public Action OnConfirm;
public Action OnCancel;
}
6. UIType 예시
public enum UIType {
None = 0,
MainWindow,
InventoryWindow,
ConfirmPopup,
ToastMessage
}
고정된 값은 static으로 관리하고 참조!
7. 최적화 전략
- 처리 후 결과가 있다면 반드시 return 하자!
- 반환값은 메서드와의 소통 창구
- 반환값 & 파라미터부터 신경 써라
- 주석, 예외처리도 성실하게!
파일 저장 관련 신규 지식
using System.IO; // 파일 저장/읽기용
using Newtonsoft.Json; // 객체 → JSON 변환
// 저장 경로 (기기별 경로 차이 있음)
Application.persistentDataPath
// 예시
// Windows: C:/Users/헴/AppData/LocalLow/회사이름/게임이름
// Mac: ~/Library/Application Support/회사이름/게임이름
using UnityEngine → MonoBehaviour 안 쓸 땐 생략 가능