Add runner mechanics and travel asset library
This commit is contained in:
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user