▣ Player 오브젝트에 Gun 오브젝트를 추가하고 Sprite Renderer와 GunManager라는 스크립트를 추가합니다.
▣ 그리고 Gun안에 BulletPos라는 이름에 오브젝트를 상속하고 총알이 발사되는 위치로 이동합니다.
▣ GunManager 스크립트로 가서 메인카메라, 마우스위치, 총알프리팹, 총알 나가는 위치, 총 쏘는 여부를 나타내는 변수, 시간, 총 쏘는 딜레이타임변수를 각각 선언합니다.
그리고 Start() 함수에서 mainCamera라는 대입 합니다.
▣ 그리고 화면공간에 마우스 위치를 가져오는 코드, 방향을 구하는 코드, 수평축으로부터 한 점까지 각도를 구하는 함수를 각각 작성하고 총 회전값에 대입합니다.
딜레이 시간에 따라 총알이 복제되는 코드까지 완성합니다.
https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html
https://docs.unity3d.com/ScriptReference/Mathf.Atan2.html
https://docs.unity3d.com/ScriptReference/Mathf.Rad2Deg.html
▣ 총알 오브젝트를 생성하고 프리팹으로 만든 다음 Sprite Renderer와 Bullet스크립트 그리고 Rigidbody 2D 컴포넌트를 추가합니다.
▣ Bullet스크립트로 가서 클릭 시 총알이 생성되면 Start() 함수에서 마우스 방향으로 힘을 주는 코드와 해당 방향에 따라 총알이 회전되는 코드까지 완성합니다.
https://docs.unity3d.com/ScriptReference/Quaternion-identity.html
▣ 저장 후 스크립트에 해당 총알 프리팹 오브젝트와 총알 위치 오브젝트를 넣고 force에 값을 10으로 지정한 다음에 플레이 후 마우스를 움직여서 발사하면 해당 마우스 방향으로 총일이 발사되고 회전되는 걸 확인할 수 있습니다.
'[ 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 |
댓글