์šฐ์„  ์žฅ๋ฌธ์˜ ์Šคํฌ๋ฆฝํŠธ ์งˆ๋ฌธ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค..

ํ•˜์ง€๋งŒ ๋‰ด๋น„๋ผ ์–ด๋””์„œ๋ถ€ํ„ฐ ์–ผ๋งŒํผ์„ ๊ธ์–ด์„œ ์งˆ๋ฌธ์„ ํ•ด์•ผํ•  ์ง€๋ชจ๋ฅด๊ฒ ์–ด์„œ..

์ข… ๋น„์œจ ์ŠˆํŒ…๊ฒŒ์ž„ ์œ ํŠœ๋ธŒ ๋ณด๊ณ  ๋˜‘๊ฐ™์ด ๋”ฐ๋ผ ๋งŒ๋“ค์–ด๋ณด๊ณ ์žˆ๋Š”๋ฐ.. ์šฐ์„  ์ƒํ™ฉ์„ ์„ค๋ช…์„ ๋“œ๋ฆฌ์ž๋ฉด..

1.์  ๋น„ํ–‰๊ธฐ๋Š” 0~8๋ฒˆ ์ด 9๊ฐœ์˜ ํฌ์ธํŠธ์—์„œ ๋žœ๋ค ์ƒ์„ฑ๋œ๋‹ค.

2.์ • ๋น„ํ–‰๊ธฐ์˜ ์ข…๋ฅ˜๋Š” L,M,S 3์ข…๋ฅ˜ ์ด๋‹ค.

3.L๋น„ํ–‰๊ธฐ๋Š” ๋ฏธ์‚ฌ์ผ2๊ฐœ๋ฅผ ๋™์‹œ์— ๋ฐœ์‚ฌํ•œ๋‹ค.

4.L๋น„ํ–‰๊ธฐ๊ฐ€ ๋ฏธ์‚ฌ์ผ์„ ์  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

ndexOutOfRangeException: Index was outside the bounds of the array.

GameManager.SpawnEnemy () (at Assets/Script/GameManager.cs:39)

GameManager.Update () (at Assets/Script/GameManager.cs:25)

5. ์˜ค๋ฅ˜๋‚˜๋Š” ์Šคํฌ๋ฆฝํŠธ์˜ ๋ถ€๋ถ„์€ย 

ย  ย  ย  ย  ย  ย  SpawnEnemy();

ย  ย  ย  ย  GameObject enemy = Instantiate(enemyObjs[ranEnemy],

์ด๋ ‡๊ฒŒ ๋‘ ๋ถ€๋ถ„์ด๋‹ค.(๋‘˜ ๋‹ค ์ ์ด ๋žœ๋คํ•˜๊ฒŒ ์ƒ์„ฑ๋œ๋‹ค๋Š” ๋ถ€๋ถ„์ด๋‹ค.)

6.์—๋Ÿฌ๋Š” ๋‚˜์ง€๋งŒ ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ์ •์ƒ ์ž‘๋™์ค‘์ด๋‹ค.

7.์Šคํฌ๋ฆฝํŠธ์— ๋นจ๊ฐ„์ค„์€ ์—†๋‹ค.


2์ผ์งธ ์ฐพ์•„๋ณด๊ณ  ๊ณ ์ณ๋ณด๊ณ  ๋‹ค์‹œ๋ณด๊ณ  ํ•˜๋Š”๋ฐ ๋„์ €ํžˆ ๋ชจ๋ฅด๊ฒ ๋”๋ผ๊ตฌ์š” ใ… 

์˜์ƒ์— ์งˆ๋ฌธ๋„ ์˜ฌ๋ฆฌ๊ธด ํ–ˆ๋Š”๋ฐ 3๋…„์ „ ์˜์ƒ์ด๋ผ ๋Žƒ๊ธ€์ด ๋‹ฌ๋ฆด์ง€ ์–ด๋–จ์ง€ ๋ชจ๋ฅด๊ฒ ์–ด์„œ...

๊ทธ๋ฆฌ๊ณ  ์œ ๋‹ˆํ‹ฐ ๊ฐค๋Ÿฌ๋ฆฌ์— ์งˆ๋ฌธํ•˜๋ผ๋Š” ๊ธ€์ด ์žˆ์–ด์„œ ์•„์ฐจ ์‹ถ์–ด ๊ฑฐ๊ธฐ์—๋„ ์งˆ๋ฌธ์„ ํ•ด ๋ดค๋Š”๋ฐ ๋‹ต๋ณ€์ด ๋‹ฌ๋ฆฌ์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์•„์„œ..

์—ผ์น˜์—†์ง€๋งŒ ๋‹ต๋ณ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค ใ… ใ… 


public class GameManager : MonoBehaviour

{

ย  ย  public GameObject[] enemyObjs;

ย  ย  public Transform[] spawnPoints;


ย  ย  public float maxSpwanDelay;

ย  ย  public float curSpwanDelay;


ย  ย  public GameObject player;

ย  ย  public Text scoreText;

ย  ย  public Image[] lifeImage;

ย  ย  public GameObject gameOverSet;


ย  ย  void Update()

ย  ย  {

ย  ย  ย  ย  curSpwanDelay += Time.deltaTime;


ย  ย  ย  ย  if(curSpwanDelay > maxSpwanDelay)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  SpawnEnemy();

ย  ย  ย  ย  ย  ย  maxSpwanDelay = Random.Range(0.5f, 3f);

ย  ย  ย  ย  ย  ย  curSpwanDelay = 0;

ย  ย  ย  ย  }


ย  ย  ย  ย ย //UIย Score Update

ย  ย  ย  ย  Player playerLogic = player.GetComponent<Player>();

ย  ย  ย  ย  scoreText.text = string.Format("{0:n0}", playerLogic.score);

ย  ย  }


ย  ย  void SpawnEnemy()

ย  ย  {//์  ๋žœ๋ค ์ƒ์„ฑ

ย  ย  ย  ย  int ranEnemy = Random.Range(0, 3);

ย  ย  ย  ย  int ranPoint = Random.Range(0, 9);

ย  ย  ย  ย  GameObject enemy = Instantiate(enemyObjs[ranEnemy],

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย spawnPoints[ranPoint].position,

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย spawnPoints[ranPoint].rotation);

ย  ย  ย  ย  Rigidbody2D rigid = enemy.GetComponent<Rigidbody2D>();

ย  ย  ย  ย  Enemy enemyLogic = enemy.GetComponent<Enemy>();

ย  ย  ย  ย  enemyLogic.player = player;



ย  ย  ย  ย  if (ranPoint == 5 || ranPoint == 6)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  //์ƒ์„ฑ ํฌ์ธํŠธ 5,6 ์—์„œ ์ƒ์„ฑ ์‹œ

ย  ย  ย  ย  ย  ย  enemy.transform.Rotate(Vector3.back * 90);

ย  ย  ย  ย  ย  ย  rigid.velocity = new Vector2(enemyLogic.speed * (-1), 0);

ย  ย  ย  ย  }


ย  ย  ย  ย  else if (ranPoint == 7 || ranPoint == 8)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  //์ƒ์„ฑ ํฌ์ธํŠธ 7,8 ์—์„œ ์ƒ์„ฑ ์‹œ

ย  ย  ย  ย  ย  ย  enemy.transform.Rotate(Vector3.forward * 90);

ย  ย  ย  ย  ย  ย  rigid.velocity = new Vector2(enemyLogic.speed, 0);