Add runner mechanics and travel asset library

This commit is contained in:
jongjae0305
2026-06-17 14:38:08 +09:00
parent ad4cd57a48
commit 1a7293ce6b
240 changed files with 17525 additions and 136 deletions
+35 -2
View File
@@ -12,11 +12,16 @@ public class GameManager : MonoBehaviour {
public GameObject gameoverUI; // 게임 오버시 활성화 할 UI 게임 오브젝트
private int score = 0; // 게임 점수
private int currentLife; // 현재 남은 목숨
public int maxLife = 3; // 시작 목숨
// 게임의 스피드를 올리는 변수
public float gameSpeed = 1f;
public float minGameSpeed = 1f;
public float speedIncreaseRate = 0.05f;
public float maxGameSpeed = 2f;
public float hitSpeedPenalty = 0.3f;
// 게임 시작과 동시에 싱글톤을 구성
void Awake() {
@@ -37,6 +42,11 @@ public class GameManager : MonoBehaviour {
}
}
private void Start() {
currentLife = maxLife;
UpdateScoreUI();
}
void Update() {
// 게임 오버 상태에서 게임을 재시작할 수 있게 하는 처리
if(isGameover && Input.GetMouseButtonDown(0))
@@ -50,6 +60,7 @@ public class GameManager : MonoBehaviour {
gameSpeed += speedIncreaseRate * Time.deltaTime;
// 게임 최대 속도는 max를 넘어서지 못하게
gameSpeed = Mathf.Min(gameSpeed, maxGameSpeed);
UpdateScoreUI();
}
}
@@ -59,14 +70,36 @@ public class GameManager : MonoBehaviour {
if(!isGameover)
{
score += newScore;
scoreText.text = "Score : " + score;
UpdateScoreUI();
}
}
// 플레이어가 장애물에 부딪혔을 때 목숨과 속도를 줄이는 메서드
public bool TakeDamage(int damage = 1) {
if(isGameover)
{
return false;
}
currentLife -= damage;
currentLife = Mathf.Max(currentLife, 0);
gameSpeed -= hitSpeedPenalty;
gameSpeed = Mathf.Max(gameSpeed, minGameSpeed);
UpdateScoreUI();
return currentLife <= 0;
}
// 플레이어 캐릭터가 사망시 게임 오버를 실행하는 메서드
public void OnPlayerDead() {
isGameover = true;
gameoverUI.SetActive(true);
}
}
private void UpdateScoreUI() {
scoreText.text = "Score : " + score + "\nLife : " + currentLife + "/" + maxLife + "\nSpeed : " + gameSpeed.ToString("0.0");
}
}