Priv's Blog

Programming Simple Functionality: Unit 4 - Gameplay Mechanics) Challenge 4 - Soccer Scripting 본문

Unity Learn/Pathway: Junior Programmer

Programming Simple Functionality: Unit 4 - Gameplay Mechanics) Challenge 4 - Soccer Scripting

Priv 2021. 7. 24. 18:12

출처

 

Challenge 4 - Soccer Scripting - Unity Learn

Challenge Overview: Use the skills you learned in the Sumo Battle prototype in a completely different context: the soccer field. Just like in the prototype, you will control a ball by rotating the camera around it and applying a forward force, but instead

learn.unity.com


 

 

1. 서언


(영상: 링크 참조)

 

Challenge 4 - Soccer Scripting - Unity Learn

Challenge Overview: Use the skills you learned in the Sumo Battle prototype in a completely different context: the soccer field. Just like in the prototype, you will control a ball by rotating the camera around it and applying a forward force, but instead

learn.unity.com


 

  1. 여러분의 Prototype 4 프로젝트를 열어주세요.
  2. "Challenge 4 Starter Files"를 튜토리얼 자료 섹션에서 다운로드하시고, 파일을 더블-클릭하여 Import해주세요.
  3. Project 창 > Assets > Challenge 4 > Instructions 폴더로 가셔서, 들어있는 리소스를 사용해 이번 도전과제를 완수해주세요.

 


 

2. 주의사항

도전과제 파일을 여러분의 프로젝트에 임포트 하시면, 의도적으로 버그가 발생하도록 되어 있습니다.

도전과제의 목적은 여러분이 아래에 나열되어 있는 버그들을 수정하는 것이며, 작업을 진행하시다가 막혔을 경우에 참고하실 수 있는 힌트들이 페이지 하단에 준비되어 있습니다.

만약 버그를 수정할 수 없고 도전과제 파일을 여러분의 프로젝트에서 삭제하고 싶으시다면, Project 창에서 마우스 우-클릭, Assets > Challenge 4으로 가셔서 Delete를 선택하시면 됩니다.

행운을 빕니다!

 

 


 

3. 적을 치면 여러분의 방향으로 되돌아옵니다.

  • 여러분이 적을 치면, 플레이어부터 멀리 날아가야 합니다.

 


 

4. 플레이어가 파워업 아이템을 얻으면 새로운 웨이브가 시작됩니다.

  • 새로운 웨이브는 모든 적의 공들이 사라졌을 때 시작되어야 합니다.

 


 

5. 파워업 아이템이 사라지지 않습니다.

  • 파워업 아이템은 특정 시간 동안만 나타났다가 사라져야 합니다.

 


 

6. 매 웨이브마다 항상 적들이 2마리만 생성됩니다.

  • 웨이브 1에서는 적이 1마리, 웨이브 2에서는 적이 2마리, 웨이브 3에서는 적이 3마리... 이처럼 한 웨이브마다 등장하는 적들이 한 마리씩 증가해야 합니다.

 


 

7. 적의 공들이 움직이지 않습니다.

  • 적의 공들이 "PlayerGoal" 오브젝트를 향해 움직여야 합니다.

 


 

8. 보너스: 플레이어에게 터보 부스트가 필요합니다.

  • 플레이어가 언제든지 스페이스바를 누르면 속도 부스트를 얻을 수 있어야 합니다. - 그리고 플레이어가 부스트를 사용할 때 파티클 이펙트가 나타나야 합니다.

 


 

9. 보너스: 적들이 점차 어려워지지 않습니다.

  • 새로운 웨이브가 시작될 때마다 적들의 속도는 조금씩 증가해야 합니다.

 


 

힌트

  • 여러분이 적을 치면, 플레이어부터 멀리 날아가야 합니다.
    힌트 - PlayerControllerX.cs에서, 벡터를 플레이어로부터 멀어지게 만들기 위해서는 [적 위치]에서 [플레이어 위치]를 빼야 합니다. - 반대로 빼면 안 됩니다.
  • 새로운 웨이브는 모든 적의 공들이 사라졌을 때 시작되어야 합니다.
    힌트 - SpawnManagerX.cs에서, enemyCount 변수가 제대로 설정되었는지 확인해주세요.
  • 파워업 아이템은 특정 시간 동안만 나타났다가 사라져야 합니다.
    힌트 - PlayerControllerX.cs에서, PowerupCoolDown 코루틴 코드는 정상적으로 보이지만, 실제로는 StartCoroution() 메서드로 호출되지 않고 있습니다.
  • 웨이브 1에서는 적이 1마리, 웨이브 2에서는 적이 2마리, 웨이브 3에서는 적이 3마리... 이처럼 한 웨이브마다 등장하는 적들이 한 마리씩 증가해야 합니다.
    힌트 - SpawnManagerX.cs에서, for문에 enemiesToSpawn 매개변수를 사용하여 적을 생성하도록 만들어야 합니다.
  • 적의 공들이 "PlayerGoal" 오브젝트를 향해 움직여야 합니다.
    힌트 - EnemyX.cs에서 다음과 같은 에러가 발생합니다: "NullReferenceEception: Object reference not set to an instance of an object". 해당 에러는 playerGoal 오브젝트가 할당되지 않아서 발생하는 것으로 보입니다.
  • 보너스 - 플레이어가 언제든지 스페이스바를 누르면 속도 부스트를 얻을 수 있어야 합니다. - 그리고 플레이어가 부스트를 사용할 때 파티클 이펙트가 나타나야 합니다.
    힌트 - PlayerController에서, 스페이스바가 눌렸을 때 "impulse" 힘을 가하는 간단한 if문을 추가해야 합니다. 파티클 이팩트를 추가하기 위해서는 먼저 Focal Point 오브젝트의 자식 오브젝트로 부착해주어야 합니다.
  • 보너스 - 새로운 웨이브가 시작될 때마다 적들의 속도는 조금씩 증가해야 합니다.
    힌트 - SpawnManagerX.cs에서 적의 속도를 파악 및 증가시켜야 합니다. 그리고 나서 EnemyX.cs에서는 speed 변수를 참조하고 Start()에서 값을 설정해주어야 합니다.

 


 


수고하셨습니다!


Comments