새 씬 추가하기 - jes79/Unity-AI-Glossary-Playground GitHub Wiki

새 씬 추가하기

씬은 손으로 만들지 않고 에디터 빌더 스크립트로 생성합니다. 그래서 언제든 Build All Scenes로 똑같이 다시 만들 수 있습니다. 자세한 규칙은 저장소의 docs/CONVENTIONS.md에 있습니다.

1. 카탈로그에 항목 추가

Assets/01_Scripts/Common/GlossaryCatalog.Data.cs에 한 줄을 추가합니다. 씬 경로는 id와 이름으로 정해집니다.

new GlossaryEntry("0116", 1, "", "더블 점프", "공중에서 한 번 더 점프", "\"공중에서 한 번 더 점프하게 해줘.\"", "0116_DoubleJump"),

2. 런타임 스크립트 작성

Assets/01_Scripts/01_Movement/DoubleJumpPlayer.cs (네임스페이스 GlossaryDemo.Movement)

  • 입력은 GlossaryDemo.DemoInput 또는 Keyboard.current (구 Input.GetKey는 사용 불가, New Input System 전용)
  • 실시간 값은 GlossaryInfoPanel.Status = "...";로 정보 패널에 표시
  • 튜닝 값은 [SerializeField, Range]로 노출

3. 빌더 작성

Assets/01_Scripts/Editor/Scenes/01_Movement/Build0116_DoubleJump.cs

using GlossaryDemo.Movement;
using UnityEditor;
using UnityEngine;
using static GlossaryKit;

public static class Build0116_DoubleJump
{
    [GlossaryScene("0116")]
    [MenuItem("Tools/Glossary/Build Scene/01 Movement/0116_DoubleJump")]
    public static void Build()
    {
        var ctx = NewScene2D("0116", "A/D : 이동   Space : 점프 (공중에서 한 번 더)");
        // 오브젝트 구성, Set(component, "field", value)로 직렬화 필드 연결
        Save(ctx);
    }
}
헬퍼 하는 일
NewScene3D / NewScene2D / NewSceneUI 카메라, 조명, EventSystem, 정보 패널까지 넣은 빈 씬
Prim, ColorMat, LitMat, CreateMaterial 프리미티브와 URP 머티리얼
CreateSprite, CreateTexture 픽셀 함수로 PNG 생성 (외부 이미지 없이)
CreateToneClip, CreateMelodyClip 절차적 효과음·BGM WAV 생성
CreateButtonRow, CreateSlider, OnClick 데모 UI와 영구 이벤트 연결
Set / SetFloat / SetLayerMask … 직렬화 필드 연결
Save(ctx) 카탈로그 경로에 저장 + Build Settings 등록

4. 검사

bash tools/compile-check/check.sh me

Unity를 띄우지 않고 dotnet으로 전체 C#을 컴파일 검사합니다(처음 한 번 tools/compile-check/generate-refs.sh 실행 필요). 그다음 Unity에서 Tools › Glossary › Build Scene › … 실행 후 Validate All Scenes로 점검합니다.