Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

피너클의 it공부방

유니티 2D 마우스 방향으로 레이캐스트 쏘기 본문

유니티 여러가지

유니티 2D 마우스 방향으로 레이캐스트 쏘기

피너클 2024. 10. 25. 16:10
728x90
반응형

플레이어 캐릭터가 레이캐스트를 쏜다라고 가정하겠다.

 

먼저 플레이어 캐릭터의 위치가 필요하다.

이건 간단히 transform.position으로 구할수 있다.

 

그 다음에는 플레이어를 기준으로 마우스의 방향을 구해야 한다.

Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector2 rayDirection = (mousePosition - transform.position).normalized;

 

Camera.main.ScreenToWorldPoint(Input.mousePosition) 으로 마우스의 위치를 구한다음

플레이어 위치와 빼주고 normalized 해줌으로서 마우스의 방향을 구해준다.

 

RaycastHit2D hit; 
hit = Physics2D.Raycast(transform.position, rayDirection , 100f);
Debug.DrawRay(transform.position, rayDirection * 100f);

그다음 Raycast를 쏴주면 된다.

Raycast에 필요한게 (시작 위치, 레이캐스트 쏠 방향, 레이캐스트 쏠 거리) 들이기 때문에

위에서 구한 값들을 넣어주고 거리는 대충 100f정도로 줬다.

if(Input.GetMouseButtonDown(0)){
            Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            Vector2 rayDirection = (mousePosition - transform.position).normalized;

            RaycastHit2D hit; 
            hit = Physics2D.Raycast(transform.position, rayDirection , 100f);
            Debug.DrawRay(transform.position, rayDirection * 100f);
}

전체 코드다 마우스 좌클릭을 했을때만 작동되게 했다.

Debug.DrawRay는 유니티 Scene 화면에서 레이캐스트를 실제로 볼수 있게 해준다.

 

 

실행 내용이다.

화면에는 안보이는데 실제로는 모든 클릭시에 레이캐스트가 나간다.

728x90
반응형
Comments