유니티 C# 3D 오브젝트 상하좌우 화면 터치 드래그로 회전시키기

반응형

유니티 C# 3D 오브젝트 상하좌우 화면 터치 드래그로 회전시키기

  • 코드 작성
using UnityEngine;

public class ObjectRotationByDrag : MonoBehaviour
{
    public float rotationSpeed = 100f; // 회전 속도 설정
    private Vector3 lastMousePosition;

    void Update()
    {
        // 마우스 입력이 있는지 확인
        if (Input.GetMouseButtonDown(0))
        {
            // 마우스 버튼을 눌렀을 때, 현재 마우스 위치 저장
            lastMousePosition = Input.mousePosition;
        }

        if (Input.GetMouseButton(0))
        {
            // 마우스 드래그 중일 때
            Vector3 deltaMousePosition = Input.mousePosition - lastMousePosition;

            // X축으로 드래그 시 좌우 회전
            float rotationX = deltaMousePosition.x * rotationSpeed * Time.deltaTime;

            // Y축으로 드래그 시 상하 회전
            float rotationY = deltaMousePosition.y * rotationSpeed * Time.deltaTime;

            // 오브젝트 회전 적용
            transform.Rotate(Vector3.up, -rotationX, Space.World);  // 좌우 회전
            transform.Rotate(Vector3.right, rotationY, Space.World);  // 상하 회전

            // 현재 마우스 위치 업데이트
            lastMousePosition = Input.mousePosition;
        }
    }
}
반응형