[UNITY] 총구에서 화면 정중앙으로 총알 발사

Doorbals·2022년 9월 16일
0

UNITY

목록 보기
4/4

총구에서 화면 정중앙으로 총알 발사

- FPS나 TPS 게임에서는 보통 화면 정중앙에 CrossHair가 존재한다.

- 위와 같은 상황에서 플레이어가 들고 있는 총의 총구에서부터 화면 정중앙의 CrossHair 방향으로 총알을 발사하고자 한다.

1. Cursor 고정

가장 먼저 정중앙에서 커서가 벗어나지 않도록 고정시킨다.

Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
  • Cursor.lockState
    - CursorLockMode.Confined : 플레이 화면 밖으로 커서가 나가지 않음.
    - CursorLockMode.Locked : 화면 중앙 좌표에 커서가 고정됨.
    - CursorLockMode.None : 일반적인 커서 상태.
  • Cursor.visible : 커서 표시 여부 결정.

2. 화면 정중앙으로 Ray 발사하기

Transform firePos;
Vector3 dir;
Ray ray;

void Start()
    {
    	// 총구 위치 찾기
        firePos = GameObject.Find("ShotgunFirePos").transform;
        dir = Camera.main.ScreenPointToRay(Input.mousePosition).direction;
        ray = new Ray(firePos.position, dir);
    }
  • Camera.main.ScreenPointToRay(Input.mousPosition)
    : 카메라에서부터 현재 마우스 위치까지에 대한 Ray. 위에서 커서 고정했으므로 카메라 ~ 화면 정중앙까지에 대한 Ray라고 볼 수 있다.
  • ray = new Ray(firePos.position, dir)
    : 위에서 구한 Ray 방향으로 총구 위치에서 시작하는 Ray 생성.

3. 해당 방향으로 총알 이동


void Update()
    {
        transform.position += ray.direction * 50 * Time.deltaTime;
    }
  • 위에서 발사한 Ray의 방향(ray.direction)으로 총알 계속 이동.
profile
게임 클라이언트 개발자 지망생의 TIL

0개의 댓글