using UnityEngine; public class ChairController : MonoBehaviour { public float minX = -2f; // ÃÖ¼Ò X À§Ä¡ public float maxX = 2f; // ÃÖ´ë X À§Ä¡ [Range(0.001f, 0.01f)] public float Sensitivity = 0.1f; private bool isDragging = false; private Camera mainCamera; private Vector3 lastMousePosition; private Vector3 moveDirection; void Start() { mainCamera = Camera.main; } public void OnDrag() { isDragging = true; lastMousePosition = Input.mousePosition; // µå·¡±× ½ÃÀÛ ½Ã À̵¿ ¹æÇâ °áÁ¤ Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition); Vector3 directionToChair = transform.position - ray.origin; moveDirection = Vector3.Cross(ray.direction, Vector3.up).normalized; if (Vector3.Dot(directionToChair, moveDirection) < 0) { moveDirection = -moveDirection; } } public void OffDrag() { isDragging = false; } void Update() { if (isDragging) { Vector3 delta = Input.mousePosition - lastMousePosition; float moveAmount = Vector3.Dot(delta, mainCamera.transform.right) * Sensitivity; // ¹Ì¸® °áÁ¤µÈ À̵¿ ¹æÇâÀ» »ç¿ë float newX = transform.localPosition.x + moveDirection.x * moveAmount; newX = Mathf.Clamp(newX, minX, maxX); transform.localPosition = new Vector3(newX, transform.localPosition.y, transform.localPosition.z); lastMousePosition = Input.mousePosition; } } }