ํด๋น ์์ 09:57์ย ์น ์ฝ๋๊ฐ ๋ฌธ์ ๊ฐ ๋๋๊ฑฐ ๊ฐ์๋ฐ ํ๋ฒ ๋ด์ฃผ์ธ์
๊ทผ๋ฐ ์์์ด๋ ๋๊ฐ์ด ์น๋๋ฐ ์ ๋ง ๋ฌธ์ ๊ฐ ์๊ธฐ๋ค์
https://youtu.be/fkJW925pn9I?si=n9GAXNUlAI8TFIgI
[Unity 2D Game] Tower Defense #07 - ํ์ ๋ฐฐ์น ์์คํ ์ ๋ํฐ ์์ง์ ์ด์ฉํด 2D Tower Defense ๊ฒ์์ ์ ์ํ๋ ๋์์์ ๋๋ค.In this video you will learn how to create 2D Tower Defense game with Unity3D Engine.โโโโโโโโโโโโโโโโ00:00 Intro...youtu.be์๋๋ ์ ์ฒด ์ฝ๋์ ๋๋ค
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SubsystemsImplementation;
public class TowerSpawner : MonoBehaviour
{
ย ย [SerializeField]
ย ย private TowerTemplate towerTemplate;
ย ย [SerializeField]
ย ย private EnemySpawner enemySpawner;
ย ย [SerializeField]
ย ย private PlayerGold playerGold;
ย ย [SerializeField]
ย ย private SystemTextViewer systemTextViewer;
ย ย private bool isOnTowerButton = false;
ย ย private GameObject followTowerClone = null;
ย ย public void ReadyToSpawnTower()
ย ย {
ย ย ย ย if(isOnTowerButton == true)
ย ย ย ย {
ย ย ย ย ย ย return;
ย ย ย ย }
ย ย ย ย if (towerTemplate.weapon[0].cost > playerGold.CurrentGold)
ย ย ย ย {
ย ย ย ย ย ย systemTextViewer.PrintText(SystemType.Money);
ย ย ย ย ย ย return;
ย ย ย ย }
ย ย ย ย isOnTowerButton = true;
ย ย ย ย followTowerClone = Instantiate(towerTemplate.followTowerPrefab);
ย ย ย ย StartCoroutine("OnTowerCancelSystem");
ย ย }
ย ย ย
ย ย public void SpawnTower(Transform tileTransform)
ย ย {
ย ย ย ย if(isOnTowerButton == false)
ย ย ย ย {
ย ย ย ย ย ย return;
ย ย ย ย }
ย ย ย ย Tile tile = tileTransform.GetComponent<Tile>();
ย ย ย ย if(tile.IsBuildTower == true)
ย ย ย ย {
ย ย ย ย ย ย systemTextViewer.PrintText(SystemType.Build);
ย ย ย ย ย ย return;
ย ย ย ย }
ย ย ย ย isOnTowerButton = false;
ย ย ย ย tile.IsBuildTower = true;
ย ย ย ย playerGold.CurrentGold -= towerTemplate.weapon[0].cost;
ย ย ย ย //ํ์๊ฐ z์ถ์์ ์์ผ๋ก ์ค์น๋๊ฒ ํจ
ย ย ย ย Vector3 position = tileTransform.position + Vector3.back;
ย ย ย ย GameObject clone = Instantiate(towerTemplate.towerPrefab, position, Quaternion.identity);
ย ย ย ย //ํ์ ๋ฌด๊ธฐ์ enemySpanwer ์ ๋ณด ์ ๋ฌ
ย ย ย ย clone.GetComponent<TowerWeapon>().Setup(enemySpawner, playerGold, tile);
ย ย ย ย Destroy(followTowerClone);
ย ย ย ย StopCoroutine("OnTowerCancelSystem");
ย ย }
ย ย private IEnumerator OnTowerCancelSystem()
ย ย {
ย ย ย ย while(true)
ย ย ย ย {
ย ย ย ย ย ย if(Input.GetKeyDown(KeyCode.Escape) || Input.GetMouseButton(1))
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย isOnTowerButton = false;
ย ย ย ย ย ย ย ย Destroy(followTowerClone);
ย ย ย ย ย ย ย ย break;
ย ย ย ย ย ย }
ย ย ย ย }
ย ย ย ย yield return null;
ย ย }
}
yield return์ด while true ์์ ์์ด์ผ์ง
ํด๊ฒฐ๋์ต๋๋ค ๊ฐ์ฌํฉ๋๋ค - dc App
๋๊ฐ์ด ๋ฐ๋ผํ๋๋ฐ ๋ฌธ์ ๊ฐ ์๊ธด๋ค! = ๋๊ฐ์ด ์ ๋ฐ๋ผํ๊ฑฐ๋๊น ์์ผ๋ก๋ ๋๊ฐ์ด ๋ฐ๋ผํ๋ค๊ณ ์๊ฐํ๋๋ฐ ์๋ ์๋๋ฉด ๋ด๊ฐ ๋๊ฐ์ด ๋ฐ๋ผํ๊ฒ ์๋๊ตฌ๋ ๋ผ๊ณ ์๋ฉด ๋จ