ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 유니티 2D 마우스 클릭 좌표 구하기 / mousePosition / ScreenToWorldPoint
    유니티(Unity)/유니티 코딩 2019. 2. 22. 13:30

    해당 티스토리 페이지는 필자가 유니티 C# 개발을 하면서 학습한 내용들을 기록하고 공유하는 페이지입니다 !

    - 틀린 부분이 있거나, 수정된 부분이 있다면 댓글로 알려주세요 !

    - 해당 내용을 공유 or 퍼가도 좋으나, 출처를 꼭 명시해주세요 !

    - 해당 글의 모든 저작권은 Chameleon Studio에 있습니다.

    - 방문해주셔서 감사합니다 ^^



    안녕하세요 ㅎㅎ 카멜레온입니다 !


    오늘은 유니티 2D 프로젝트에서


    마우스 클릭 좌표를 구해보려고합니다.


    조금 해보시고 고민하다가


    방법을 검색하신 분들은 아시겠지만,


    Input.mousePosition을 사용하면


    Input.mousePosition이 들어간


    스크립트를 단 오브젝트가


    여기저기로 자기 맘대로 움직입니다.


    답답하지요.


    물체가 마우스 클릭한 위치에 정확히 가 있어야


    편안해지는 데 말이죠..


    그래서 오늘은 편안해지기 위해서


    유니티2D 마우스 클릭 좌표를 구해봅시다.



    유니티 프로젝트를 연 이미지 입니다.유니티2D 프로젝트 열기



    우선 여러분들의 유니티 2D 프로젝트를 열어주세요.


    그 다음 스크립트를 하나 만들어주세요.


    저는 젤랑이 오브젝트를 하나 만들어서


    거기에 스크립트를 넣었습니다.


    그냥 마우스 클릭 좌표만 로그로 나오면


    재미가 없을 것 같아서


    젤랑이를 마우스 클릭한 곳으로 옮기도록 하겠습니다.


    물론, 콘솔 창의 로그로도 마우스 클릭 좌표가 찍히도록 하고요.


    게임 오브젝트에 스크립트를 넣으셨으면


    넣은 스크립트를 열어주세요.



    아래 코드를 캡처한 사진입니다.이미지가 안보이시는 분들은 아래 코드 보기를 누르고 코드를 확인해주세요.




    위의 코드를 넣어줍니다.


    코드 설명을 하자면,


    Vector2 MousePosition;


    우선 마우스 클릭 좌표 위치를 담을


    벡터를 선언해서 벡터 변수(MousePosition)를 만들어주었습니다.


    Camera Camera;


    다음으론,


    Camera가 기본 좌표 지도라고 생각하시면 됩니다.


    카메라가 지도이고, 지도 위에 마우스를 클릭하면


    지도에 대한 좌표가 나타나겠지요.


     Camera = GameObject.Find("Camera").GetComponent<Camera>();


    Start문에서 유니티가 실행되면


    우리의 지도가 될


    카메라의 컴포넌트를 찾아줍니다.


    실행하면 지도를 먼저 찾아주어야겠지요.


    Find("Camera")라고 설정되어 있는데,


    제 카메라 이름은 Camera이기 때문에


    Camera라고 해놓았습니다.


    아마 여러분은 Main Camera라고 되어 있지 않을까 생각합니다.


    여러분의 카메라 이름을 큰 따옴표 사이에 넣어주시면 됩니다.


    if (Input.GetMouseButtonDown(0))


    이제 업데이트문입니다.


    업데이트문에서 마우스 왼쪽 클릭을 감지하면,


    MousePosition = Input.mousePosition;


    아까 선언했던 벡터2 변수인 MousePosition에


    입력된 mousePosition의 값을 넣어줍니다.


    MousePosition = Camera.ScreenToWorldPoint(MousePosition);


    다음으로 입력된 mousePosition의 좌표를


    카메라의 월드 좌표로 변환해주어야합니다.


    변환을 안하면, 이상한 데로 가버리지요.


    이상한 데로 가지 말고


    우리의 지도인 카메라 안에서만 움직여라라고


    ScreenToWorldPoint를 사용한 것입니다.


    transform.position = MousePosition;


    이제 입력 변환된 좌표 값으로


    젤랑이를 움직이는 코드입니다.


    Debug.Log(MousePosition);


    이것은 콘솔창에 마우스 클릭 좌표를


    나타내주는 로그입니다.


    이제 코드 입력이 끝났으니,


    스크립트를 저장을 하고 유니티로 돌아가


    실행 버튼을 클릭해봅시다.





    자 이렇게해서 젤랑이가


    내가 클릭한 좌표로 움직입니다.


    (편안)


    여러분들도 편안하시죠


    여기까지 유니티 2D 마우스 클릭 좌표 구하기가 끝났습니다.


    순탄한 개발되시길 바라며,


    이상으로 포스팅을 마치겠습니다.


    잘 읽으셨다면 댓글을 달아주세요.


    댓글은 저에게 다음 포스팅을 위한 힘이 됩니다 ㅠ ㅠ


    또, 카멜레온이 다뤘으면 좋겠다하는 포스팅 내용을 달아주시면,


    해당 내용에 관한 포스팅도 해보도록 하겠습니다.


    감사합니다 !


    Chameleon Studio가 만든 게임하러가기


    <젤랑점핑>

    안드로이드- market://details?id=com.Cameleon.TangTangBall

    IOS- itms-apps://itunes.apple.com/app/id1429522379



    <크러쉬팡>

    안드로이드- market://details?id=com.Chameleon.CrushPang 

    IOS- itms-apps://itunes.apple.com/app/id1450109331

    댓글

Designed by Tistory.