본문 바로가기
[ Unity ]/- 유니티 실습

유니티 마우스 위치로 총알 발사

by MRG 2024. 7. 11.
728x90
반응형

 

▣ Player 오브젝트에 Gun 오브젝트를 추가하고 Sprite Renderer와 GunManager라는 스크립트를 추가합니다. 

 

 

▣ 그리고 Gun안에 BulletPos라는 이름에 오브젝트를 상속하고 총알이 발사되는 위치로 이동합니다. 

 

 

▣ GunManager 스크립트로 가서 메인카메라, 마우스위치, 총알프리팹, 총알 나가는 위치, 총 쏘는 여부를 나타내는 변수, 시간, 총 쏘는 딜레이타임변수를 각각 선언합니다. 

그리고 Start() 함수에서 mainCamera라는 대입 합니다. 

 

 

▣ 그리고 화면공간에 마우스 위치를 가져오는 코드, 방향을 구하는 코드, 수평축으로부터 한 점까지 각도를 구하는 함수를 각각 작성하고 총 회전값에 대입합니다. 

딜레이 시간에 따라 총알이 복제되는 코드까지 완성합니다. 

 

https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html

 

Unity - Scripting API: Camera.ScreenToWorldPoint

World space coordinates can still be calculated even when provided as an off-screen coordinate, for example for instantiating an off-screen object near a specific corner of the screen. Screenspace is defined in pixels. The bottom-left of the screen is (0,0

docs.unity3d.com

 

https://docs.unity3d.com/ScriptReference/Mathf.Atan2.html

 

Unity - Scripting API: Mathf.Atan2

Return value is the angle between the x-axis and a 2D vector starting at zero and terminating at (x,y). Note: This function takes account of the cases where x is zero and returns the correct angle rather than throwing a division by zero exception.

docs.unity3d.com

 

https://docs.unity3d.com/ScriptReference/Mathf.Rad2Deg.html

 

Unity - Scripting API: Mathf.Rad2Deg

Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. Close

docs.unity3d.com

 

 

 

 

▣ 총알 오브젝트를 생성하고 프리팹으로 만든 다음 Sprite Renderer와 Bullet스크립트 그리고 Rigidbody 2D 컴포넌트를 추가합니다. 

 

 

▣  Bullet스크립트로 가서 클릭 시 총알이 생성되면 Start() 함수에서 마우스 방향으로 힘을 주는 코드와 해당 방향에 따라 총알이 회전되는 코드까지 완성합니다.

 

https://docs.unity3d.com/ScriptReference/Quaternion-identity.html

 

Unity - Scripting API: Quaternion.identity

Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. Close

docs.unity3d.com

 

 

 

▣ 저장 후 스크립트에 해당 총알 프리팹 오브젝트와 총알 위치 오브젝트를 넣고 force에 값을 10으로 지정한 다음에 플레이 후 마우스를 움직여서 발사하면 해당 마우스 방향으로 총일이 발사되고 회전되는 걸 확인할 수 있습니다. 

 

 

728x90
반응형

'[ Unity ] > - 유니티 실습' 카테고리의 다른 글

유니티 메소드  (0) 2024.08.08
유니티 TileMap  (0) 2024.07.25
유니티 애니메이션 스프라이트  (0) 2024.07.10
유니티 night skybox  (0) 2024.01.21
유니티 ai NavMeshAgent  (0) 2024.01.20

댓글