피너클의 it공부방
유니티 2D 마우스 방향으로 레이캐스트 쏘기 본문
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
반응형
'유니티 여러가지' 카테고리의 다른 글
유니티2D 탑다운 밀어서 여는 문 만들기 (0) | 2024.10.29 |
---|---|
유니티2D 시네머신 이용해서 카메라가 플레이어 따라다니게 만들기 (0) | 2024.10.26 |
유니티 Gradle build failed. (0) | 2024.10.04 |
유니티 [scene 화면이랑 game화면이랑 똑같게 카메라 움직이는 단축키] (0) | 2024.10.01 |
유니티 ForceMode (0) | 2024.09.30 |
Comments