반응형

1. 오늘 학습 키워드

  • 1주차
    • 캐릭터 이동 + flipX 반전
    • 마우스 클릭 시 방향 전환
    • 빗방울 프리팹 랜덤 생성 (Instantiate + Random.Range)
    • 충돌 처리 (OnCollisionEnter2D) → 점수 증가 / 오브젝트 제거
    • GameManager 싱글톤 + 점수 관리 (AddScore)
    • UI 텍스트 실시간 갱신 (Text.text)
    • InvokeRepeating 사용해 빗방울 반복 생성
    • 시간 제한 + 게임 오버 패널 (Time.deltaTime, SetActive)
    • Retry 버튼으로 씬 재시작 (SceneManager.LoadScene)
  • 2주차
    • 마우스 따라오게 하기 (Shield.cs → Camera.ScreenToWorldPoint)
    • 장애물 랜덤 생성 + 프리팹화 (Instantiate, Random.Range, InvokeRepeating)
    • 시간 측정 및 표시 (Time.deltaTime, Text.text)
    • 풍선과 충돌 시 게임 종료 처리 (OnCollisionEnter2D, GameOver())
    • GameManager 싱글톤 처리 (static Instance, Awake)
    • 게임 오버 시 애니메이션 전환 (Animator.SetBool("isDie", true))
    • 0.5초 지연 후 시간 멈춤 처리 (Invoke("TimeStop", 0.5f))
    • 최고 점수 저장 및 불러오기 (PlayerPrefs.SetFloat, GetFloat, HasKey)
    • Retry 버튼으로 게임 재시작 (SceneManager.LoadScene)
    • UI 텍스트로 현재/최고 점수 표시
  • 3주차
    • StartScene → MainScene 씬 전환 (SceneManager.LoadScene)
    • 강아지가 일정 시간마다 밥 발사 (InvokeRepeating, Instantiate)
    • 밥이 일정 y값 넘으면 제거 (Destroy)
    • 마우스 따라 강아지 이동 + 이동 범위 제한
    • 고양이 프리팹 중력 이동 + Random.Range로 위치 지정
    • 고양이 HP 바 구현 (Transform.localScale)
    • 밥과 충돌 시 HP 증가 + 배부르면 이미지 전환 (SetActive)
    • 에너지 꽉 찬 고양이 옆으로 이동 후 제거 (Destroy(gameObject, 3.0f))
    • 지면 도달 시 게임 종료 (GameManager.Instance.GameOver())
    • 레벨 시스템 구현 (5마리마다 1레벨 증가)
    • 레벨에 따라 고양이 등장 확률 변경 + FatCat 등장
    • FatCat은 더 느리고 HP 더 많음
    • Retry 버튼 + Time.timeScale = 1.0f 재설정

2. 오늘 학습 한 내용을 나만의 언어로 정리하기

오늘은 유니티 게임개발 1,2,3 주차 강의를 듣고 개발을 하였다. 딱히 어려운 점은 없었고 자주 사용하지 않던 부분들이 조금 있었다. 유니티 기능이 워낙 많아서 하나씩 천천히 잘 배워보자.


3. 학습하며 겪었던 문제점 & 에러

✅ 오늘 새롭게 배운 개념 요약

1. 🖼️ UI Image에 Shadow 컴포넌트 적용

  • Image 컴포넌트에도 Shadow(효과)를 추가할 수 있음
  • UI에 그림자 효과를 줘서 더 입체감 있는 디자인 가능
  • 추가 방법: Add Component > Effects > Shadow
  • Effect Color, Effect Distance, Use Graphic Alpha 등 속성 조절 가능

2. 📦 싱글톤(Singleton) 패턴

  • GameManager 같은 오브젝트를 전역에서 접근 가능하게 만드는 방식
  • 기본 구조:
csharp
복사편집
public static GameManager Instance;

void Awake()
{
    Instance = this;
}

  • 다른 스크립트에서 GameManager.Instance로 바로 접근 가능

3. 🎨 카메라 배경색 변경

  • Camera.main.backgroundColor = Color.blue; 처럼 코드로 설정 가능
  • 또는 에디터에서 Main Camera 선택 → Inspector > Background에서 직접 변경
  • Clear Flags가 Skybox일 경우 Solid Color로 바꿔야 색상이 보임

4. 💾 PlayerPrefs로 점수 저장

  • 앱을 껐다 켜도 데이터 유지 가능
  • 주요 함수:
PlayerPrefs.SetFloat("bestScore", 값); // 저장
PlayerPrefs.GetFloat("bestScore");     // 불러오기
PlayerPrefs.HasKey("bestScore");       // 존재 여부 확인
  • 최고 점수, 설정값, 튜토리얼 완료 여부 등에 자주 사용됨

4. 내일 학습 할 것

유니티 게임 개발 4,5주차 완강


 

반응형