728x90
728x90
안녕하세요! 이번 포스팅에서는 탑다운 슈팅 게임(Top-Down Shooter) 제작의 첫 번째 단계로, 유니티 프로젝트 설정과 플레이어 컨트롤을 구현해보겠습니다. 이 게임에서는 2D 환경에서 플레이어가 자유롭게 움직이고, 마우스 방향을 바라보며 공격할 수 있도록 만드는 것이 목표입니다.
1. 프로젝트 설정
1.1 유니티 프로젝트 생성
- **유니티 허브(Unity Hub)**를 열고, **새로운 프로젝트(New Project)**를 만듭니다.
- 템플릿에서 2D를 선택하고 프로젝트 이름을 TopDownShooter로 설정합니다.
- Create Project 버튼을 눌러 프로젝트를 생성합니다.
1.2 기본 설정
- Main Camera 설정:
- Background Color를 원하는 색상(예: 검은색 또는 어두운 회색)으로 변경합니다.
- Size를 5로 설정하여 적당한 뷰포트를 제공합니다.
- Assets 폴더 구성:
- Assets > Create > Folder로 필요한 폴더를 생성합니다:
- Scripts: 스크립트 파일 저장.
- Sprites: 게임 오브젝트에 사용할 이미지.
- Prefabs: 자주 재사용될 오브젝트.
- Assets > Create > Folder로 필요한 폴더를 생성합니다:
2. 플레이어 오브젝트 생성
2.1 플레이어 스프라이트 추가
- 간단한 플레이어 이미지를 준비하거나 유니티의 기본 도형(예: Circle)을 사용합니다.
- Hierarchy 창에서 2D Object > Sprite를 선택하여 새 오브젝트를 생성합니다.
- 오브젝트 이름을 Player로 변경합니다.
- 플레이어의 Sprite Renderer에 스프라이트 이미지를 할당합니다.
2.2 플레이어 이동 구현
- PlayerMovement 스크립트 작성
- Assets > Scripts 폴더에 PlayerMovement.cs 스크립트를 생성합니다.
- 아래 코드를 작성하여 플레이어가 WASD 키로 움직이도록 설정합니다.
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float moveSpeed = 5f; // 이동 속도
public Rigidbody2D rb; // Rigidbody2D 참조
private Vector2 movement;
void Update()
{
// 입력 처리
movement.x = Input.GetAxisRaw("Horizontal");
movement.y = Input.GetAxisRaw("Vertical");
}
void FixedUpdate()
{
// 물리 이동
rb.MovePosition(rb.position + movement * moveSpeed * Time.fixedDeltaTime);
}
}
2. Rigidbody2D 컴포넌트 추가
- Player 오브젝트를 선택하고 Add Component > Rigidbody2D를 추가합니다.
- Body Type을 Kinematic으로 설정하여 물리 충돌 없이 움직일 수 있도록 만듭니다.
3. PlayerMovement 연결
- Player 오브젝트에 PlayerMovement 스크립트를 추가하고, Rigidbody2D를 드래그하여 rb 필드에 연결합니다.
3. 마우스를 따라 플레이어 회전
3-1 플레이어 회전 스크립트 작성
- 플레이어가 마우스 위치를 바라보도록 설정하려면, 다음과 같이 PlayerLook 스크립트를 작성합니다:
using UnityEngine;
public class PlayerLook : MonoBehaviour
{
public Camera cam; // 카메라 참조
private Vector2 mousePos;
void Update()
{
// 마우스 위치 가져오기
mousePos = cam.ScreenToWorldPoint(Input.mousePosition);
}
void FixedUpdate()
{
// 플레이어 회전
Vector2 lookDir = mousePos - (Vector2)transform.position;
float angle = Mathf.Atan2(lookDir.y, lookDir.x) * Mathf.Rad2Deg - 90f;
transform.rotation = Quaternion.Euler(0, 0, angle);
}
}
3-2 카메라 연결
- PlayerLook 스크립트를 Player 오브젝트에 추가합니다.
- Camera를 Main Camera로 드래그하여 cam 필드에 연결합니다.
4. 테스트 및 조정
- Play 모드로 게임 실행
- WASD 키로 플레이어가 움직이고, 마우스 방향을 향해 회전하는지 확인합니다.
- 이동 속도 및 회전 조정
- PlayerMovement와 PlayerLook 스크립트의 속성값을 조정하여 이동 속도와 회전감을 최적화합니다.
5. 정리 및 다음 단계 예고
이번 포스팅에서는 프로젝트 설정과 플레이어 컨트롤을 구현하여 게임의 기본 틀을 만들었습니다. 다음 포스팅에서는 플레이어의 슈팅 메커니즘을 구현하여 총알을 발사하고 적을 공격할 수 있도록 만들어 보겠습니다.
계속해서 여러분의 멋진 탑다운 슈팅 게임을 완성해 나갑시다!
728x90
'유니티 > 탑 다운 슈팅 게임 만들기' 카테고리의 다른 글
탑다운 슈팅 게임 만들기 #5 – 플레이어와 적의 체력 및 게임 오버 구현 (1) | 2024.11.12 |
---|---|
탑다운 슈팅 게임 만들기 #4 – 적 스폰 시스템 구현하기 (0) | 2024.11.11 |
탑다운 슈팅 게임 만들기 #3 – 적 캐릭터 및 기본 AI 구현 (2) | 2024.11.10 |
탑다운 슈팅 게임 만들기 #2 – 플레이어 슈팅 메커니즘 구현하기 (1) | 2024.11.09 |
탑다운 슈팅 게임(Top-Down Shooter)이란? (0) | 2024.11.07 |