📌 풍선을 지켜라
네모가 풍선에 닿으면 끝! 오래 살아남는 게 목표
Rise Up!이란 게임을 유사하게 만들어보면서, 유니티의 기초 다지기
마우스로 제어하기
마우스 포인터를 따라 움직이게 하기
→ Mouse의 좌표계를 카메라 좌표계로 바꾸고 Shield의 위치에 넣어주기
using UnityEngine;
public class Shield : MonoBehaviour
{
void Update()
{
Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
transform.position = mousePos;
}
}
베스트 스코어 기록
데이터 보관
- 데이터 저장하기
PlayerPrefs.SetFloat("bestScore", 어떤숫자값 );
PlayerPrefs.SetString("bestScore", 어떤문자열 ); - 데이터 불러오기
어떤숫자값 = PlayerPrefs.GetFloat("bestScore");
어떤문자열 = PlayerPrefs.GetString("bestScore"); - 데이터 저장했는지 확인
PlayerPrefs.HasKey("bestScore")→ 있으면 true, 없으면 false - 데이터 모두 지우기
PlayerPrefs.DeleteAll();
로직
if (최고 점수가 있다면)
{
if(최고 점수 < 지금 점수)
{
현재 점수를 최고 점수에 저장한다.
현재 점수를 최고 점수에 보여준다.
}
else
{
저장된 최고 점수를 보여준다.
}
}
else
{
if (최고 점수 < 지금 점수)
{
현재 점수를 최고 점수에 저장한다.
현재 점수를 최조 점수에 보여준다.
}
}
애니메이션 전환
- 풍선이 터지면서 게임 끝내기
→ 터지는 애니메이션을 만들어두고 풍선이 네모와 닿으면 전환 - Parameters에 bool 형식의 isDie 만들기
- transition 클릭하고 has exit time 체크 해제 → 즉시 전환
- GameOver() 할 때, is Die 값 바꿔주기
📌 고양이 밥주기 게임
HP바
- 기본 에너지 세팅
- 밥과 고양이가 충돌하면 에너지 올라가게 하기 + 밥 없애기
- 에너지와 full이 같아지면 배부름
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.CompareTag("Food"))
{
energy += 1.0f;
Destroy(collision.gameObject);
}
else
{
Debug.Log("배가 다 찼어요");
}
}
레벨 구성하기
- 5마리 당 레벨 1씩 올리기
- 고양이가 배부를 때 AddScore() 함수 부르기
→ 옆으로 빠질 때 계속 점수가 올라가기 때문에 수정필요 - 상태를 is Full로 만들고 제어
bool isFull = false;
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.CompareTag("Food"))
{
if(energy < full)
{
energy += 1.0f;
Destroy(collision.gameObject);
front.localScale = new Vector3(energy / full, 1.0f, 1.0f);
if(energy == 5.0f)
{
if(isFull)
{
isFull = true;
hungryCat.SetActive(false);
fullCat.SetActive(true);
Destory(gameObject, 3.0f);
GameManager.Instance.AddScore();
}
}
}
}
}
💡 느낀 점
- PlayerPrefs를 활용해 게임 데이터를 저장하는 흐름이 재밌었다. 간단한 기능이지만 게임에 진짜 기록이 남는 느낌을 줬다.
- 조건에 따라 상태가 바뀌고, UI가 반응하도록 만드는 방식이 재미있었다. 다양한 요소가 유기적으로 연결되어 작은 게임이라도 제대로 된 게임처럼 보이게 되는 구간이었다고 느꼈다.
.
'TIL' 카테고리의 다른 글
| 구조체(struct) vs 클래스(class) (0) | 2025.04.14 |
|---|---|
| 내일배움캠프 5일차 TIL (0) | 2025.04.11 |
| 내일배움캠프 4일차 TIL (0) | 2025.04.10 |
| 내일배움캠프 2일차 TIL (0) | 2025.04.08 |
| 내일배움캠프 1일차 TIL (0) | 2025.04.07 |