Priv's Blog
Programming Simple Functionality: Unit 4 - Gameplay Machanics) Lesson 4.1 - Watch Where You're Going 본문
Unity Learn/Pathway: Junior Programmer
Programming Simple Functionality: Unit 4 - Gameplay Machanics) Lesson 4.1 - Watch Where You're Going
Priv 2021. 7. 24. 18:10출처
1. 서언
(영상: 링크 참조)
2. 프로젝트 생성 및 scene 열기
이전에 하셨던 것처럼, 이번에도 반복입니다... 새로운 프로젝트를 시작하고 스타터 파일을 가져와야 합니다.
(영상: 링크 참조)
- Unity Hub를 열고 "Prototype 4" 프로젝트를 여러분의 corse 폴더 내에 새로 생성해주세요.
- 링크를 클릭하셔서 Prototype 4 스타터 파일에 접근하시고, 파일을 다운로드하셔서 유니티에 import 해주세요.
- Prototype 4 scene을 여시고 Sample Scene를 저장 없이 삭제해주세요.
- Run 버튼을 눌러 파티클 이팩트를 확인해주세요.
3. 플레이어 설정 및 텍스처 추가
게임이 진행될 섬이 있으니, 이제 플레이거가 조작하고 굴릴 수 있는 구체가 필요합니다.
(영상: 링크 참조)
- Hierarchy 안에서, 3D Object > Sphere를 생성해주세요.
- 오브젝트의 이름을 "Player"로 바꿔주시고, position 값을 초기화, XYZ scale 값을 1.5로 늘려주세요.
- Player 오브젝트에 RigidBody 컴포넌트를 추가해주세요.
- Library > Textures에서 텍스처를 sphere로 드래그해주세요.
4. 카메라 초점 포인트(focal point) 생성하기
카메라가 게임 주변을 부드럽고 영화 같은 방식으로 회전하도록 만들고 싶으시다면, 섬의 중앙에 초점 포인트(focal point)를 심어주어야 합니다.
(영상: 링크 참조)
- 새로운 빈 오브젝트를 생성하시고, 오브젝트 이름을 "Focal Point"로 바꿔주세요.
- 오브젝트의 position 값을 기본값인 (0, 0, 0)으로 초기화해주시고, Camera 오브젝트를 자식 오브젝트로 만들어주세요.
- 새로운 "Scripts" 폴더를 생성하시고, 폴더 안에 "RotateCamera"라는 스크립트를 새로 생성해주세요.
- Focal Point에 "RotateCamera" 스크립트를 부착해주세요.
5. 사용자 입력을 이용해 초점 포인트 회전시키기
이제 카메라가 초점 포인트에 부착되었으므로, 플레이어가 카메라와 카메라의 자식 오브젝트를 수평 입력을 사용해 섬 주변을 회전할 수 있도록 만들어야 합니다.
(영상: 링크 참조)
- rotationSpeed와 horizontalInput을 기반으로 카메라를 회전시킬 수 있도록 코드를 작성해주세요.
- rotation speed 값을 조정하여 여러분이 원하는 속도를 설정해주세요.
6. 플레이어에게 전방으로 힘 가하기
카메라가 섬 주변을 문제없이 회전하고 있으므로, 이제 플레이어를 움직여볼 차례입니다.
(영상: 링크 참조)
- "PlayerController" 스크립트를 새로 생성하고, Player 오브젝트에 적용하신 뒤, 파일을 열어주세요.
- 새로운 변수 public float speed를 선언하시고 초기화해주세요.
- private Rigidbody playerRb를 새로 선언하시고, Start() 안에서 초기화해주세요.
- Update() 안에서, "Vertical" 입력값을 기반으로 하는 새로운 forwardInput 변수를 선언해주세요.
- AddForce() 메서드를 선언하여 플레이어가 forwardInput을 기반으로 앞으로 움직일 수 있게 만들어주세요.
7. 초점 방향으로 움직이기
이제 공이 굴러가도록 만들었지만, 앞, 뒤로만 움직일 수 있습니다! 카메라의 방향(과 초점 포인트)이 향하는 방향으로 공이 움직일 수 있어야 합니다.
(영상: 링크 참조)
- 새로운 변수, private GameObject focalPoint;를 선언하시고, Start() 안에서 다음과 같이 초기화해주세요: focalPoint = GameObject.Find("Focal Point");
- AddForce를 호출하는 곳에서, Vector3.forward를 focalPoint.transform.forward로 바꿔주세요.
8. 내용 복습
(영상: 링크 참조)
- 새로 배운 기능들
- 카메라가 수평(horizontal) 입력값을 바탕으로 섬 주위를 회전하도록 만들기
- 플레이어가 수직(vertical) 입력값을 바탕으로 카메라 방향으로 굴러가게 만들기
- 새로 배운 개념과 기술들
- 텍스처 랩 (Texture Wraps)
- 자식 오브젝트로서의 카메라
- 전역 vs 지역 좌표
- 다른 오브젝트의 방향 가져오기
- 다음 시간에 학습할 내용들
- 다음 시간에는, 게임 안에 플레이어들을 쫓는 적들을 만들어 플레이어에게 더 많은 도전 요소들을 추가해보겠습니다.
수고하셨습니다!
'Unity Learn > Pathway: Junior Programmer' 카테고리의 다른 글
Comments