์ฐ์ ์ฅ๋ฌธ์ ์คํฌ๋ฆฝํธ ์ง๋ฌธ ์ฃ์กํฉ๋๋ค..
ํ์ง๋ง ๋ด๋น๋ผ ์ด๋์๋ถํฐ ์ผ๋งํผ์ ๊ธ์ด์ ์ง๋ฌธ์ ํด์ผํ ์ง๋ชจ๋ฅด๊ฒ ์ด์..
์ข ๋น์จ ์ํ ๊ฒ์ ์ ํ๋ธ ๋ณด๊ณ ๋๊ฐ์ด ๋ฐ๋ผ ๋ง๋ค์ด๋ณด๊ณ ์๋๋ฐ.. ์ฐ์ ์ํฉ์ ์ค๋ช ์ ๋๋ฆฌ์๋ฉด..
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);
์ผ๋จ IndexOutOfRangeException ๋ฐฐ์ด ๋ฒ์๋ฐ ์ธ๋ฑ์ค ๋ฃ์์๋ ๋์ค๋ ์๋ฌ -1์ด๋ 3๊ฐ์๋ ๋ฐฐ์ด์ 3์ด์ ๋ฃ์์๋ ์์๊ฐ๋ฅํ ์ํฉ enemyObjs์ spawnPoints๊ฐ ์ธ์คํํฐ์์ ๊ฐ์ด ๋ฃ์ด์ง์ง ์์ ๋๋ ๊ฐฏ์๊ฐ ๋ถ์กฑํจ ์ถ์ฒ ์์ ๋ฐฉ๋ฒ int ranEnemy = Random.Range(0, enemyObjs.Length); int ranPoint = Random.Range(0, spawnPoints.Length);
์ฐ์ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค! ใ ์๋ ค์ฃผ์ ๋ฐฉ๋ฒ๋ฐ๋ก ์์ ์ ํด ๋ดค๋๋ฐ ์์ฝ๊ฒ๋ ๊ฐ์ ํ์์ด๋ค์ ใ ๋ญ๊ฐ ๋ฌธ์ ์ธ๊ฑฐ์ง.. ์๋ซ๋ถ ๋ง์์ฒ๋ผ ์ธ์คํํฐ์์ ํ ๋น์ ์๋ชปํ๊ฑฐ๋ ๋ ํ๋ ํ๊ณ ํ์ธ์ ํด ๋ด๋ ๋ค ์๋ง๊ฒ ๋ค์ด๊ฐ ์๋๋ผ๊ตฌ์..
๋์๋๋ฏธ๊ฐ 0,1,2 ๋๋ค์์ฑํ๋๋ฐ ์๋๋ฏธ ๋ฐฐ์ด์ ์ธ์คํํฐ์์ ๋ฃ์๋๋ณด์ง - dc App
๋ ๋ฃ์ - dc App
ํ์ธ์ ํด ๋ดค๋๋ฐ 0~2๊น์ง ์๋ง๊ฒ ์ ๋ฐฐ์ ๋์ด์์ต๋๋ค ใ
๋์๋๋ฏธ ๋ํฌ์ธํธ ๋๋ฒ๊ทธ๋ก๊ทธ๋ก ๋ช๋ฒ์งธ ์ธ๋ฑ์ค์์ ์๋ฌ๊ฐ ๋๋์ง, ํด๋น ์ธ๋ฑ์ค์์ ์๋๋ฏธํ๋ฆฌํน์ด๋ฆ, ์คํฐํฌ์ธํธ์ด๋ฆ ๋ค ๋ก๊ทธ์ฐ์ด๋ณด๋ฉด์ ์ฐพ์๋ณด์ - dc App