Priv's Blog
Programming Simple Functionality: Unit 4 - Basic Gameplay) Lab 4 - Basic Gameplay 본문
Programming Simple Functionality: Unit 4 - Basic Gameplay) Lab 4 - Basic Gameplay
Priv 2021. 7. 24. 18:14출처
1. 서언
(영상: 링크 참조)
2. 오브젝트의 기본적인 움직임 구현하기
여러분의 scene에 오브젝트들을 생성하기 전에, 먼저 여러분이 원하는 데로 오브젝트를 움직일 수 있도록 만들어야 합니다.
(영상: 링크 참조)
1. 필요한 경우, Rigidbody 컴포넌트를 여러분의 논-플레이어(non-player) 오브젝트에 부착해주세요.
2. 오브젝트를 게임 플레이 도중에 인스턴스화 하기 위해 필요한 새로운 스크립트(들)를 생성하고 각각의 오브젝트(발사체 또는 획득 아이템 포함)에 부착해주세요.
3. 여러분의 오브젝트에 필요한 기본적인 움직임을 프로그래밍하시고 제대로 작동하는지 테스트해주세요.
이번 단계가 끝날 때까지, 모든 오브젝트들이 게임에 필요한 기본적인 움직임을 수행할 수 있어야 합니다.
3. 화면 밖으로 넘어간 오브젝트 삭제하기
여러분의 hierarchy가 너무 어수선하지 않도록, 오브젝트들이 scene에서 사라질 때 삭제해줍시다.
(영상: 링크 참조)
새로운 스크립트를 생성하거나 여러분의 기존 스크립트의 코드를 추가하여 오브젝트들이 화면 밖으로 벗어나면 파괴되도록 만들어주세요.
이번 단계가 끝날 때까지, 오브젝트들은 게임 상에 존재하지 않을 때 hierarchy에서 사라져야 합니다.
4. 오브젝트 충돌 제어하기
이제 모든 오브젝트들이 움직이므로, 서로 충돌하기 시작합니다. - 여러분은 오브젝트들이 충돌할 때 무슨 일이 발생해야 하는지를 프로그래밍하셔야 합니다.
(영상: 링크 참조)
1. 필요한 경우, 여러분의 오브젝트들의 Rigidbody 질량을 수정해주세요.
2. 필요한 경우, 여러분의 오브젝트들의 collide를 수정하고, 새로운 Physics material를 만들어 오브젝트에 추가해주세요.
3. 태그(tag)를 여러분의 오브젝트들에 추가하면 어떤 오브젝트가 충돌하는지 정확히 테스트할 수 있습니다.
4. (Rigidbody 충돌 감지에 필요한) OncollisionEnter()를 사용하거나 (트리거 기반 충돌 감지에 필요한) OnTriggerEnter()를 사용하여 특정한 충돌이 발생했을 때 파괴(Destroy) 또는 로그 메시지(Log message)를 콘솔에 출력하도록 만들어주세요.
이번 단계가 끝날 때까지, 오브젝트들은 충돌이 발생했을 때 파괴되거나(Destroy), 튕기거나(Bounce), 또는 아무 일도 일어나지 않도록 만들어져야 합니다.
5. 오브젝트들을 프리팹으로 만들기
이제 오브젝트들의 기본적인 움직임을 구현하였으므로, 오브젝트들이 게임 플레이 도중에 인스턴스화 되도록 만들려면 이를 프리팹으로 만들어야 합니다.
(영상: 링크 참조)
1. Assets 디렉터리에서, "Perfabs"라는 이름의 새로운 폴더를 생성해주세요.
2. 각각의 오브젝트를 드래그해서 새로운 프리팹(new prefab)으로 만들어주세요.
3. 모든 오브젝트들을 프리팹으로 변환하신 뒤, scene에 있는 오브젝트들을 삭제(delete)해주세요.
4. 게임이 실행되는 동안 오브젝트들을 Prefabs 폴더에서 scene으로 드래그하여 오브젝트들의 동작을 테스트해주세요.
이번 단계가 끝날 때까지, 게임이 실행되는 동안 생성되는 모든 오브젝트들은 프리팹이어야 하며, 여러분의 scene에 프리팹이 남아 있어서는 안 됩니다.
6. SpawnManager를 만들어 프리팹 생성하기
이제 여러분은 모든 프리팹 설정을 마쳤으며, 간격마다 오브젝트를 생성하는 spawn manager를 만들고, 원하는 경우 무작위 좌표에 생성되도록 만들어야 합니다.
(영상: 링크 참조)
1. "Spawn Manager"라는 빈 오브젝트(Empty object)를 생성하시고 새로운 SpawnManager.cs를 해당 오브젝트에 부착해주세요.
2. 여러분의 프리팹에 대한 GameObject 또는 GameObject 배열을 각각 만들어주신 뒤, inspector에서 값을 할당해주세요.
3. Instantiate(), Random.Range()와 InvokeRepeating() 메서드를 사용하여 오브젝트가 간격(무작위 오브젝트, 무작위 좌표 또는 둘 다)에 따라 생성되도록 만들어주세요.
4. 여러분의 Assets 폴더에서 우-클릭 > Export Package를 클릭해 여러분의 Backups 폴더에 새로운 버전을 저장해주세요.
이번 단계가 끝날 때까지, 오브젝트들이 적절한 위치에서 자동으로 생성되어야 합니다.
7. 요약
(영상: 링크 참조)
- 새로 배운 기능들
Non-player 오브젝트 프리팹의 기본적인 움직임 구현하기
오브젝트가 스크린 밖으로 벗어나면 삭제되도록 만들기
오브젝트들 사이의 충돌을 적절히 처리하기
오브젝트가 시간 간격에 맞춰 적절한 위치에 생성되도록 만들기
- 새로 배운 개념과 기술들
독립 프로젝트를 위한 기본적인 게임 플레이 기능 구현하기