| name | README |
|---|---|
| description | Unity 표준 예제 프로젝트 모음 — CBT 지향 커리큘럼, macOS 동작 검증 |
| date | 2026-07-12 |
Unity 6.0 LTS(6000.0.78f1) 기반 표준 예제 프로젝트 모음. 목적은 게임이 아닌 CBT(Computer Based Training) 제작 기반 확보. 폴더 넘버링은 두 자리(00.~) 체계, 주제 흐름 순으로 정렬. 설계 SSOT: _doc_arch/examples-curriculum.md.
- 형식: 모든 예제 =
완성(스크립트·씬 포함, 프로젝트 열면 씬 자동 오픈 → Play 즉시 동작). 완성전(실습) 코드는 각 예제의_pre/폴더에 보관 — 전환 방법은 각 예제 README 의 "실습 (_pre → 완성)" 섹션 참조 (Issue10 — 구_done정답 아카이브 구조 반전·폐지) - 클릭 실행: 폴더 이동 없이 README 열기·Unity 즉시 실행은
LAUNCHER.md참조
| 범주 | 폴더 | 형식 | 내용 |
|---|---|---|---|
| 기초·템플릿 | 00.HelloUnity |
완성 | 정적 큐브 1개 최소 씬. Unity 입문 표준 "hello world" |
01.dice |
완성 | 주사위 예제 | |
02.Universal2d |
완성 | URP 2D 템플릿 기반 예제. Lib/kr.finfra.core file: 참조 배선 |
|
03.Universal3d |
완성 | URP 3D 템플릿 기반 예제 | |
04.Hd3d |
완성 | HDRP 3D 템플릿 기반 예제 | |
| 에셋 쇼케이스 | 05.Objects |
완성 | 텍스처·머티리얼·프리팹·스카이박스를 전부 코드로 생성하는 절차적 쇼케이스 |
| 입력 | 06.KeyboardEvent |
완성 | 키보드 — WASD/방향키 이동, KeyDown·KeyUp 로그 |
07.MouseEvent |
완성 | 마우스 — 큐브 클릭·호버(OnMouseXXX), 버튼·좌표 로그 | |
08.MouseDrag |
완성 | 마우스 드래그 — 큐브 끌어 이동(Screen→World) | |
09.InputCombo |
완성 | 마우스+키보드 복합 — Space·좌클릭이 같은 동작(점프+색) | |
10.FormInput |
완성 | 폼 사용자 입력 — IMGUI TextField·Button → 인사말 | |
| 이벤트 | 11.EventBasics |
완성 | 이벤트 감지 인트로 — 아무 입력 1회 감지 → 색 순환 (최소 형태) |
12.EventLogging |
완성 | 입력 로깅 상세 — 키/마우스 → Console+OnGUI 로그 | |
| C# | 13.CSharp_apply |
완성 | C# 스크립트 작성 → GameObject 적용(부착) from-scratch 실습 |
| 오브젝트 조작 | 14.ObjectMoveToggle |
완성 | 오브젝트 조작 — Space 토글로 객체 왕복 이동 on/off |
15.ObjectPicking |
완성 | Raycast 클릭 선택 + 하이라이트 (CBT "부품 클릭" 기반) | |
| 카메라 | 16.CameraSetup |
완성 | 카메라 설정 — FOV 프리셋·원근/직교 토글·배경색 |
17.CameraMoving |
완성 | orbit/zoom/pan 카메라 (장비 관찰 패턴) | |
| UI | 18.UiBasics |
완성 | uGUI 기초 — Canvas·Button·Text·Image + 클릭 배선 |
| 씬·메뉴네비 | 19.SceneAdd |
완성 | 씬 추가 + Build Settings 등록 |
20.SceneTransition |
완성 | 씬 전환 + 데이터 유지 (DontDestroyOnLoad) | |
21.MenuNavigation |
완성 | 목차/메뉴 네비 — 메뉴 노드 → 선형(prev/next) → 목차 복귀 ★ | |
| 미디어·슬라이드 | 22.AudioPlayback |
완성 | AudioSource 재생 제어 (내레이션 패턴, 자체 제작 음원) |
23.VideoPlayback |
완성 | VideoPlayer 로 finfra.kr mp4 URL 스트리밍 (파일 미포함) | |
24.SlidePlayer |
완성 | 슬라이드 노드 — 제목+본문+이미지 자리, 이전/다음 재생 ★ | |
| 데이터·평가·추적 | 25.ScenarioData |
완성 | 시나리오 데이터 분리 — ScriptableObject vs StreamingAssets JSON |
26.QuizAssessment |
완성 | 퀴즈·채점·결과 저장 (PlayerPrefs + JSON) — CBT 평가 핵심 | |
27.XapiTracking |
완성 | xAPI 학습추적 — statement 구성·로그, i5 ExperienceAPI 연동 ★ | |
| 통합 캡스톤 | 28.ProcedureSim |
완성 | 절차 시뮬레이터 캡스톤 (15+18+22+25+26 통합) |
29.DataDrivenBuilder |
완성 | 데이터 주도 Builder — manifest.json → 노드 주입 씬 생성 ★ | |
| 물리·스폰·툴킷 | 30.PrefabSpawner |
완성 | 런타임 프리팹 스폰 — Space → Instantiate/Destroy 수명 관리 |
31.Box2dSimple |
완성 | 초간단 Box2D(2D 물리) — Rigidbody2D 박스 중력 낙하 | |
32.Box2dControl |
완성 | 조작 Box2D — 플레이어 박스 좌우 이동 + 점프 | |
33.PhysXSimple |
완성 | 초간단 PhysX(3D 물리) — Rigidbody 큐브 중력 낙하 | |
34.PhysXControl |
완성 | 조작 PhysX — 플레이어 큐브 WASD 이동 + 점프 | |
35.I5Toolkit |
완성 | i5 Toolkit(OpenUPM) 배선 + Spawner 데모 — Space 스폰·FIFO | |
| 렌더 심화 | 36.HdrpKnifeOutline |
완성 | HDRP 나이프 외곽선 — DrawRenderers Custom Pass + Inverted Hull |
★ = CBT 파이프라인 보강 신규 예제 (MenuNavigation·SlidePlayer·XapiTracking·DataDrivenBuilder).
0036 의 선형 커리큘럼과 별개로, "여러 기능을 실제로 조립하면" 을 보여주는 부록 예제. 36, 향후 37+ 확장 여지)와 섞이지 않게 분리했다.9N 번호대를 써서 본편 순서(00
| 폴더 | 형식 | 내용 |
|---|---|---|
91.Universal2d_all |
완성 | 05~30(물리 제외) 26개 기능을 메뉴 허브 하나로 통합한 2D 종합 예제 |
92.Universal3d_all |
완성 | 05~30(물리 제외) 26개 기능을 메뉴 허브 하나로 통합한 3D 종합 예제 |
93.Box2dExample |
완성 | CBT용 Box2D — 부품을 드래그해 소켓에 조립하는 2D 물리 상호작용 |
94.PhysXExample |
완성 | CBT용 PhysX — 부품을 드래그해 소켓에 조립하는 3D 물리 상호작용 |
- 91/92: 개별 예제 26개를 다시 배우는 게 아니라 "메뉴 허브 패턴"(하나의 씬에서 여러 기능을
SetActive/enabled로 전환) 을 배우는 캡스톤. 상세: 각 프로젝트 README "만드는 방법" - 93/94: 31~34(Box2D/PhysX 기초) 다음 단계로, 물리 엔진을 CBT 조립 훈련 시나리오("드래그→정답 판정→오답 시 재시도")에 적용하는 방법을 보여준다. 93↔94 는 2D/3D API 대응표를 README 에 나란히 정리
기초·템플릿(0004) → 에셋 쇼케이스(05) → 입력(0610) → 이벤트(1112) → C#(13) → 오브젝트 조작(1415) → 카메라(1617) → UI(18) → 씬·메뉴네비(1921) → 미디어·슬라이드(2224) → 데이터·평가·추적(2527) → 통합 캡스톤(2829) → 물리·스폰·툴킷(3035) → 렌더 심화(36).
- 입력(06
10) vs 이벤트(1112):입력= 입력원(키·마우스·폼)별 처리,이벤트= 입력원 무관 이벤트 감지(11)·로깅(12) 일반. 06~10 도 이벤트 방식(GetKeyDown등)이나 입력원 기준으로 분류 - C#(13) 위치: 06~12 완성 예제로 스크립트 사용을 먼저 보고, 13 에서 from-scratch 작성 실습. "사용 → 작성" 순서 (설계 SSOT 참조)
cbt-production-pipeline.md 가 정의한 노드타입·Builder·추적을 예제화:
21.MenuNavigation— menu 노드 + 선형/복귀 네비24.SlidePlayer— slide 노드 재생기(제목·본문·이미지 자리)27.XapiTracking— 학습 추적 xAPI statement (i5 ExperienceAPI 연동 안내)29.DataDrivenBuilder— 파이프라인 핵심 ④: manifest → 결정론적 씬 생성
- 엔진 대응: Unity 2D 물리 = Box2D(
Rigidbody2D+Collider2D), 3D 물리 = NVIDIA PhysX(Rigidbody+Collider).31↔33,32↔34가 같은 패턴을 두 엔진으로 대응 30.PrefabSpawner= 런타임 객체 생성(Instantiate/Destroy) 기초35.I5Toolkit= i5 Toolkit(RWTH Aachen, MIT) OpenUPM 배선 + Spawner 데모. 검증에 에디터+네트워크(패키지 resolve) 필요
36.HdrpKnifeOutline = 04.Hd3d HDRP 스캐폴드 복제. HDRP 는 내장 outline 없음 → Custom Pass(DrawRenderers) + Inverted Hull 셰이더로 나이프만 선택 강조. 04.Hd3d 와 상호 참조. 검증에 에디터 필요.
원래는 Unity 공식 "에디터 내 튜토리얼" 프로젝트의 콘텐츠를 그대로 담고 있었으나, 재배포 권한이 없어 전량 제거하고 절차적 생성 방식으로 재구성했다. 텍스처·머티리얼·프리팹·스카이박스를 BuildScript.cs 가 코드로 만들어 저장하므로 반입 에셋이 없다.
오디오는 저장소 자체 제작 음원(sh/gen-audio.py 신디사이즈)이며, 22.AudioPlayback·28.ProcedureSim·91·92 가 같은 음원을 공유한다.
sh/build_example_mac Projects/Examples/00.HelloUnity # 결과: 00.HelloUnity/Build/HelloUnity.app
open Projects/Examples/00.HelloUnity/Build/HelloUnity.app- 검증:
BuildResult.Succeeded(101,257,156 bytes), engine 6000.0.78f1 초기화 + Mono/Physics 로드 확인
Unity Editor GUI 에서 새 프로젝트를 Projects/Examples/ 하위에 만들거나 공식 샘플 repo 를 clone. 폴더명은 NN.이름 두 자리 넘버링. 빌드 자동화는 BuildScript.cs 패턴(씬 코드 생성 + BuildPipeline.BuildPlayer) 재사용.