팀스파르타 내일배움캠프

🧗 JumpKing 3D - Unity 과제 최종 TIL

creator2041 2025. 5. 23. 21:20

🗓️ 작업 일자: 2025-05-23

📌 오늘 구현한 기능 요약

1. 점프대 프리팹화 및 자동 생성 시스템 완성

  • 점프대 구조물을 프리팹으로 만들어 재사용 가능하게 구성
  • JumpPadSpawner.cs를 통해 (14, 1, 0)을 기준으로 다섯 개의 점프대가 생성되도록 구현
  • 기존 문제였던 y축 간격이 너무 커서 점프가 불가능했던 부분은 y 누적 방식에서 누적 간격을 랜덤한 작은 값으로 보정하여 해결

2. 점프대 발광 기능 (밤에만 Glow 효과 적용)

  • 점프대에 Emission 머티리얼을 적용하고, 낮에는 끄고 밤에는 자동 발광하도록 JumpPadGlow.cs 구현
  • DayNightCycle에서 밤/낮을 판단해 모든 점프패드의 Emission을 조절할 수 있게 설계

🧪 트러블슈팅

🔥 점프대 최초 위치 누락 문제

  • 문제: 최초 점프대 위치 (14, 1, 0)이 누락되고 바로 offset된 다음 위치부터 생성됨
  • 해결: Instantiate()를 반복문의 처음에 호출하고, position += offset은 마지막 루프에서만 진행하도록 수정함

🔥 점프대 y축이 지나치게 높아져 점프 불가

  • 문제: verticalSpacing * i 누적 방식으로 인해 점프력이 도달하지 못하는 높이에 점프대가 배치됨
  • 해결: currentPosition += Random.Range(2f, 3f) 형식으로 누적치를 작게 조정하여 점프 가능 범위로 제한함

🔥 점프대가 낮에도 빛나는 문제

  • 문제: Emission 키워드가 기본적으로 활성화되어 있어, 점프대가 밤낮 관계없이 항상 빛남
  • 해결: material.DisableKeyword("_EMISSION")로 기본 상태를 꺼두고, 밤에만 Enable 되도록 구조 변경

🔍 오늘의 인사이트

  • Y값을 무조건 i에 곱해서 누적하면 기하급수적으로 높아진다는 것을 명확히 체감함
  • Emission은 키워드를 껐다 켜야 진짜로 조명 효과가 반응함 → 머티리얼 인스턴스를 따로 뽑아 쓰는 것이 안전함
  • 시작 위치에서 무조건 한 번 생성하고, 이후에 위치 누적해야 최초 위치가 보장된다는 것 학습함
  • DayNightCycle에 반응하는 오브젝트들을 따로 관리하거나, FindObjectsOfType으로 일괄 제어하는 패턴이 유용함

📝 마무리

오늘은 점프대 배치와 발광 시스템까지 구조적으로 완성하며 전체 흐름을 안정화했다.
특히 수치가 게임 플레이에 어떤 영향을 주는지, y간격이 게임의 체감 난이도에 얼마나 큰 영향을 주는지 체감했고,
스크립트와 게임 오브젝트, 머티리얼이 시간 시스템에 따라 유기적으로 연결되는 경험을 할 수 있었다.

내일은 아이템을 점프대 위에 올리거나, 연출/이펙트 중심으로 디테일을 채워넣는 쪽으로 이어나갈 예정.