Priv's Blog

Programming Simple Functionality: Unit 4 - Gameplay Machanics) Lesson 4.4 - For-Loops for waves 본문

Unity Learn/Pathway: Junior Programmer

Programming Simple Functionality: Unit 4 - Gameplay Machanics) Lesson 4.4 - For-Loops for waves

Priv 2021. 7. 24. 18:12

출처

 

Lesson 4.4 - For-Loops For Waves - Unity Learn

Overview: We have all the makings of a great game; A player that rolls around and rotates the camera, a powerup that grants super strength, and an enemy that chases the player until the bitter end. In this lesson we will wrap things up by putting these pie

learn.unity.com


 

 

1. 서언


(영상: 링크 참조)

 

Lesson 4.4 - For-Loops For Waves - Unity Learn

Overview: We have all the makings of a great game; A player that rolls around and rotates the camera, a powerup that grants super strength, and an enemy that chases the player until the bitter end. In this lesson we will wrap things up by putting these pie

learn.unity.com


 


 

2. 적 3마리를 생성하는 for문 작성하기

더 많은 적들을 생성하여 플레이어에게 달려들도록 만들어야 합니다. 이를 구현하기 위해서는 반복문을 사용해 적의 인스턴스화를 반복시켜야 합니다.

 


(영상: 링크 참조)

 

Lesson 4.4 - For-Loops For Waves - Unity Learn

Overview: We have all the makings of a great game; A player that rolls around and rotates the camera, a powerup that grants super strength, and an enemy that chases the player until the bitter end. In this lesson we will wrap things up by putting these pie

learn.unity.com


 

  1. SpawnManager.cs의 Start() 안에서, Instantiation 문장을 for문 안에 넣어서 적 3마리를 생성하도록 바꾸어주세요.
  2. for문을 새로운 void SpawnEnemyWave() 함수 안으로 옮긴 뒤, Start() 안에서 함수를 호출해주세요.

 

 


 

3. for문에 매개변수 제공하기

지금은 SpawnEnemyWave가 적을 정확히 3마리만 생성하고 있습니다. 하지만 만약 여러분이 적들의 숫자를 게임이 진행되는 동안 다이내믹하게 증가시키고 싶으시다면, 메서드에 정보를 전달해줄 수 있어야 합니다.

 


(영상: 링크 참조)

 

Lesson 4.4 - For-Loops For Waves - Unity Learn

Overview: We have all the makings of a great game; A player that rolls around and rotates the camera, a powerup that grants super strength, and an enemy that chases the player until the bitter end. In this lesson we will wrap things up by putting these pie

learn.unity.com


 

  1. SpawnEnemyWave 함수에 매개변수 int enemiesToSpawn을 추가해주세요.
  2. i < ___ 부분을 i < enemiesToSpawn으로 변경해주세요.
  3. Start() 안에서 SpawnEnemyWave(___); 함수를 호출할 때, 새로운 변수를 추가해주세요.

 

 


 

4. 떨어진 적들 삭제하기

플레이어가 모든 적들을 떨어트리고 나면 외로움을 느낄 것입니다. 마지막 적까지 모두 떨어지게 되면 새로운 적들을 생성해야 합니다!

 


(영상: 링크 참조)

 

Lesson 4.4 - For-Loops For Waves - Unity Learn

Overview: We have all the makings of a great game; A player that rolls around and rotates the camera, a powerup that grants super strength, and an enemy that chases the player until the bitter end. In this lesson we will wrap things up by putting these pie

learn.unity.com


 

  1. Enemy.cs 에서 적들의 좌표값이 -Y 값보다 작아지면 오브젝트를 삭제하도록 만들어주세요.
  2. SpawnManager.cs에서, 새로운 변수 public int enemyCount를 선언해주세요.
  3. Update() 안에 enemyCount = FindObjectsOfType<Enemy>().Length;를 작성해주세요.
  4. if문을 사용해 만약 enemyCount == 0 조건이 되었을 때, SpawnEnemyWave를 호출하도록 만들어주신 뒤, Start() 안에 있던 코드는 삭제해주세요.

 

 


 

5. 웨이브와 함께 enemyCount 값 늘리기

이제 여러분은 적들이 생성될 양을 조정할 수 있게 되었으므로, 웨이브마다 등장하는 적들의 수를 늘려야 합니다. 플레이어가 적들의 웨이브를 버텨낼 때마다 더 많은 적들이 생성돼야 합니다.

 


(영상: 링크 참조)

 

Lesson 4.4 - For-Loops For Waves - Unity Learn

Overview: We have all the makings of a great game; A player that rolls around and rotates the camera, a powerup that grants super strength, and an enemy that chases the player until the bitter end. In this lesson we will wrap things up by putting these pie

learn.unity.com


 

  1. public int waveNumber = 1;를 새로 선언하고, SpawnEnemyWave(waveNumber);를 작성해주세요.
  2. 적이 0마리 남았을 때, waveCount 변수 값을 1만큼 증가시키는 if문을 작성하시고 테스트해주세요.

 

 


 

6. 새로운 웨이브와 함께 파워업 아이템 생성하기

여러분의 게임이 이제 거의 완성되었지만, 한 가지 놓친 것이 있습니다. 적들은 매 웨이브마다 지속적으로 생성되지만, 파워업 아이템은 한 번 사용하고 나면 영원히 나타나지 않아 플레이어가 취약해지기 쉽습니다. 여러분은 파워업 아이템이 매 웨이브와 함께 무작위로 생성되도록 만들어서 플레이어가 이 아이템을 통해 반격할 수 있는 기회를 갖도록 해야 합니다.

 


(영상: 링크 참조)

 

Lesson 4.4 - For-Loops For Waves - Unity Learn

Overview: We have all the makings of a great game; A player that rolls around and rotates the camera, a powerup that grants super strength, and an enemy that chases the player until the bitter end. In this lesson we will wrap things up by putting these pie

learn.unity.com


 

  1. SpawnManager.cs 안에서 새로운 변수, public GameObject powerupPrefab을 선언하시고, inspector 상에서 프리팹을 할당하신 뒤, scene에서 오브젝트를 삭제해주세요.
  2. Start()에서, Instantiate로 새로운 파워업 아이템이 생성되도록 만들어주세요.
  3. SpawnEnemyWave()를 호출하기 전에, Instantiate로 새로운 파워업 아이템이 생성되도록 만들어주세요.

 

 


 

 

7. 내용 복습


(영상: 링크 참조)

 

Lesson 4.4 - For-Loops For Waves - Unity Learn

Overview: We have all the makings of a great game; A player that rolls around and rotates the camera, a powerup that grants super strength, and an enemy that chases the player until the bitter end. In this lesson we will wrap things up by putting these pie

learn.unity.com


 

- 새로 배운 기능들

  • 웨이브마다 적 생성하기
  • 매 웨이브가 끝날 때마다 등장하는 적들의 수 증가시키기
  • 매 웨이브마다 새로운 파워업 아이템 등장시키기

 

- 새로 배운 개념과 기술들

  • For문
  • 증가(++) 연산자
  • 매개변수를 가지는 사용자 정의 메서드
  • FindObjectsOfType

 

- 다음에 학습할 내용

  • IEnumerators와 코루틴으로 시간 추적하기
  • 더 많은 물리 이팩트(Physics effects)를 추가하는 물리 머티리얼(Physics materials)
  • 카메라 제어
  • 이동 방향을 생성하는 벡터 수학

 


 


수고하셨습니다!


Comments