반응형
참고한 블로그
https://blog.naver.com/dlehdgh1120/221706425033
public class CameraController : MonoBehaviour
{
//* 터치, 마우스 카메라 컨트롤러 *//
Vector2 clickPoint;
Vector3 touchStart;
void Awake()
{
// 카메라 배율 초기화
Camera.main.orthographicSize = 10;
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
// 마우스가 눌렸을 때 마우스 좌표 저장
// clickPoint = Input.mousePosition;
touchStart = Camera.main.ScreenToWorldPoint(Input.mousePosition);
}
if (Input.GetMouseButton(0))
{
Vector3 position = touchStart - Camera.main.ScreenToWorldPoint(Input.mousePosition);
Camera.main.transform.position = new Vector3(Camera.main.transform.position.x + position.x, 6, Camera.main.transform.position.z + position.z);
// 실패했던 코드
// Camera.main.transform.position += position;
}
}
}
ScreenToWorldPoint를 사용해서 마우스 좌표를 받아왔고, 화면상의 카메라 위치를 빼 주었다(position)
이 position을 그대로 카메라의 transform.position에 더해주었더니 화면을 위/아래로 움직일 때 카메라가 상/하로 움직이는 문제가 생겼다. 이로 인해 카메라는 오브젝트 아래로 내려가 버렸는데, 화면을 기준으로 일정 부분이 잘리는 현상이 발생했다.

이 문제는 position을 더해줄 때 x, z만 더해주고 y축을 고정시켜 해결했다.

+ 개선해야할 점
화면 드래그 속도가 느림
줌인/줌아웃 추가
반응형
'유니티 > 유니티 C#' 카테고리의 다른 글
[유니티/C#] 라인렌더러를 이용한 움직이는 발판 (0) | 2023.06.16 |
---|---|
[유니티/C#] UI 슬라이드 기능 만들기 (DOTween) (0) | 2023.06.15 |
[유니티/C#] 터치/마우스로 카메라 이동 (0) | 2022.08.03 |
[유니티/C#] 모바일 푸시알림 (0) | 2022.08.03 |
[유니티/C#] 아이소메트릭 카메라 설정 (0) | 2022.08.03 |