ใ…Žใ…‡ ์œ ๋‹ˆํ‹ฐ ๋ฒ„ํŠผ ์”นํž˜ ๊ด€๋ จ ์งˆ๋ฌธํ•œ ์œ ๋™์ž„.

์ปด๊ณต ํ•™๋ถ€ 1ํ•™๋…„ ์žฌํ•™ ์ค‘์ธ๋ฐ, ์ƒ์ผ๋„ ์ง€๋‚œ ์ง€ ์–ผ๋งˆ ์•ˆ ๋˜์–ด์„œ ์–ผ๋ฅธ ๊ฒŒ์ž„ ๋งŒ๋“ค์–ด์„œ ๊ด‘๊ณ  ๋ถ™์ด๊ณ  ์ถœ์‹œํ•˜๊ณ  ์‹ถ์€ ๋งˆ์Œ์— 2์‹œ๊ฐ„ ๋งŒ์— ํ”„๋กœํ† ํƒ€์ž…์„ ๋งŒ๋“ค์–ด๋ดค์–ด.


๊ทธ๋Ÿฐ๋ฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์–ด.


1. ๋ฒ„ํŠผ ์”นํž˜ ํ˜„์ƒ์ด ์—ฌ์ „ํ•ด. ์ € ๊ณผ๋… ๊ทผ์ฒ˜๋ฅผ ๋ˆ„๋ฅด๋ฉด ํด๋ฆญ์ด ์ผ์ • ์‹œ๊ฐ„ (0.1์ดˆ์ฏค?) ๋งˆ๋‹ค 1ํšŒ์”ฉ๋งŒ ํ†ตํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ์”นํž˜.

2. ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฒ„ํŠผ๋„ ์œ„์ชฝ์„ ๋ˆ„๋ฅด๋ฉด ์”นํžˆ๊ณ  ์•„๋ž˜์ชฝ์„ ๋ˆ„๋ฅด๋ฉด ์ž˜ ๋ˆŒ๋ ค.

3. ์ด๊ฒŒ ์˜ˆ์ „์— ๋งŒ๋“ค๋˜ ๊ฒŒ์ž„์—์„  ์•ˆ ๊ทธ๋žฌ์Œ.

4. ํ™”๋ฉด ์ „์ฒด(์—…๊ทธ๋ ˆ์ด๋“œ ์ฐฝ ์ œ์™ธ)์— ๋ฒ„ํŠผ์„ ์„ค์น˜ํ•ด์„œ ๊ทธ๋Ÿฐ๊ฐ€? ๋ผ๊ณ  ์ƒ๊ฐํ•ด์„œ ๋ฒ„ํŠผ ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ๋ด๋„ ์†Œ์šฉ์—†์—ˆ์Œ.

5. ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ์— navigation์„ None์œผ๋กœ ์„ค์ •ํ•ด๋„ ์†Œ์šฉ์—†์—ˆ์Œ.

6. ๋‹น์—ฐํžˆ ํ™”๋ฉด ์ „์ฒด์— ์„ค์น˜ํ•œ ๋ฒ„ํŠผ์ด ์ œ์ผ ์•ž์œผ๋กœ ์˜ด.


์ด๊ฑฐ ์‚ฌ์‹ค ๊ฐœ๋ฐœ์ผ์ง€ ๊ฒธ ์งˆ๋ฌธ์ด์•ผ... ๋ช…์ƒ‰์ด ํด๋ฆฌ์ปค ๊ฒŒ์ž„์ธ๋ฐ ํด๋ฆญ์ด ์•ˆ ๋˜๋ฉด ์“ฐ๋‚˜...ใ… ใ… ใ… ใ… 



viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec84fa11d028316f6e59db3d00f81430124d7065ec965d6ac5e3589c101a67314613f5a07c102a8cd25388927c2128d46c6bd94397ef38ea04bca6

์Šคํฌ๋ฆฐ ๋ฒ„ํŠผ ์„ค์ •


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec84fa11d028316f6e59db3d00f81430124d7065ec965d6ac5e3589c101a67314613f5a07c102a8cd25388927c2128873a6f8d4694bc383d21df24

์—…๊ทธ๋ ˆ์ด๋“œ ๋ฒ„ํŠผ ์„ค์ •


์•„๋ž˜ ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์Šคํฌ๋ฆฝํŠธ์ธ GameDirector์˜ ์Šคํฌ๋ฆฝํŠธ


using System;

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

//using UnityEngine.Experimental.UIElements;


public class GameDirector : MonoBehaviour

{

ย  ย  Canvas canvas;

ย  ย  public Image hpBarFill;

ย  ย  public GameObject damageText;

ย  ย  GameObject enemyHpText;

ย  ย  GameObject playerGoldText;

ย  ย  GameObject upgradeGoldText;


ย  ย  public double enemyHp;

ย  ย  public double maxEnemyHp;

ย  ย  public double tutorialDummyHp = 1;


ย  ย  public double playerAttack = 1;

ย  ย  public double playerGold = 0;


ย  ย  void Start()

ย  ย  {

ย  ย  ย  ย  canvas = GameObject.Find("Canvas").GetComponent<Canvas>();

ย  ย  ย  ย  enemyHpText = GameObject.Find("EnemyHp");

ย  ย  ย  ย  playerGoldText = GameObject.Find("PlayerGold");

ย  ย  ย  ย  upgradeGoldText = GameObject.Find("UpgradeGold");

ย  ย  ย  ย  LoadPlayer();

ย  ย  ย  ย  EnemyMake();

ย  ย  }


ย  ย  void Update()

ย  ย  {

ย  ย  ย  ย  hpBarFill.fillAmount = (float)(enemyHp / maxEnemyHp);

ย  ย  ย  ย  enemyHpText.GetComponent<Text>().text = enemyHp.ToString();

ย  ย  ย  ย  playerGoldText.GetComponent<Text>().text = playerGold.ToString() + " Gold";

ย  ย  ย  ย  upgradeGoldText.GetComponent<Text>().text = (playerAttack * (playerAttack + 1)).ToString() + " Gold";

ย  ย  ย  ย ย 

ย  ย  ย  ย  if (Input.GetKeyDown(KeyCode.Escape))

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  StartCoroutine(SavePlayer());

ย  ย  ย  ย  ย  ย  Application.Quit();

ย  ย  ย  ย  }

ย  ย  }


ย  ย  public void OnUpgradePressed()

ย  ย  {

ย  ย  ย  ย  if(playerGold >= (playerAttack * (playerAttack + 1)))

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  playerGold -= playerAttack * (playerAttack + 1);

ย  ย  ย  ย  ย  ย  playerAttack++;

ย  ย  ย  ย  }

ย  ย  }


ย  ย  public void OnScreenPressed()

ย  ย  {

ย  ย  ย  ย  enemyHp -= playerAttack;

ย  ย  ย  ย  GameObject instantiatedDamageText = Instantiate(damageText);

ย  ย  ย  ย  instantiatedDamageText.GetComponent<DamageTextDirector>().damage = playerAttack;

ย  ย  ย  ย  instantiatedDamageText.transform.SetParent(canvas.transform, false);

ย  ย  ย  ย  if (enemyHp <= 0)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  tutorialDummyHp++;

ย  ย  ย  ย  ย  ย  EnemyMake();

ย  ย  ย  ย  ย  ย  if (maxEnemyHp < 100)

ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  playerGold++;

ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  ย  ย  else

ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  playerGold += Math.Truncate(maxEnemyHp / 100);

ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  }

ย  ย  ย  ย  StartCoroutine("SavePlayer");

ย  ย  }

ย  ย  void EnemyMake()

ย  ย  {

ย  ย  ย  ย  maxEnemyHp = tutorialDummyHp;

ย  ย  ย  ย  enemyHp = maxEnemyHp;

ย  ย  }


ย  ย  public IEnumerator SavePlayer()

ย  ย  {

ย  ย  ย  ย  SaveSystem.SavePlayer(this);

ย  ย  ย  ย  yield return null;

ย  ย  }


ย  ย  public void LoadPlayer()

ย  ย  {

ย  ย  ย  ย  SaveData data = SaveSystem.LoadPlayer();


ย  ย  ย  ย  playerGold = data.playerGold;

ย  ย  ย  ย  playerAttack = data.playerAttack;

ย  ย  ย  ย  tutorialDummyHp = data.tutorialDummyHp;

ย  ย  ย  ย ย 

ย  ย  }

}