반응형
드래그로 오브젝트 Y축 회전하기 (Drag to Rotate Object in Y-axis)
드래그로 오브젝트 위, 아래로 움직이기 (Drag Object in Y-Axis)
드래그로 오브젝트 움직이기 (Move GameObject with Drag)
드래그로 땅 위의 오브젝트 움직이기 (Drag and Move on the Ground)
드래그로 평면 위의 오브젝트 움직이기 (Drag and Move on the Plane)
드래그로 블럭 옆으로 한 칸 움직이기 (Drag GameObject Snapped to a Grid)
오브젝트를 클릭하여 드래그하면 위, 아래로 움직이도록 해보자.
오브젝트를 클릭할 때, 마우스의 위치를 먼저 기억해두기 위한 변수와 speed 변수를 만든다.
Vector3 clickPoint;
float upDownSpeed = 5.0f;
오브젝트를 클릭하면 마우스의 위치를 기억해둔다.
void OnMouseDown()
{
clickPoint = Input.mousePosition;
}
마우스를 드래그할 때, 이전의 위치와 현재 위치의 차이를 이용하여 오브젝트의 y 값을 변경한다.
마지막에는 다시 현재의 위치를 clickPoint에 저장한다.
void OnMouseDrag()
{
Vector3 diff = Input.mousePosition - clickPoint;
Vector3 pos = transform.position;
pos.y += diff.y * Time.deltaTime * upDownSpeed;
transform.position = pos;
clickPoint = Input.mousePosition;
}
이제 움직일 오브젝트에 스크립트를 추가하고 테스트해보자.
오브젝트가 위/아래(y축)로 움직인다.
최종 코드는 아래와 같다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UpAndDown : MonoBehaviour
{
Vector3 clickPoint;
float upDownSpeed = 5.0f;
void OnMouseDown()
{
clickPoint = Input.mousePosition;
}
void OnMouseDrag()
{
Vector3 diff = Input.mousePosition - clickPoint;
Vector3 pos = transform.position;
pos.y += diff.y * Time.deltaTime * upDownSpeed;
transform.position = pos;
clickPoint = Input.mousePosition;
}
}
Unity Plus:
Unity Pro:
Unity 프리미엄 학습:
반응형
'개발 > Unity' 카테고리의 다른 글
유니티 에디터 - OnDrawGizmos / OnDrawGizmosSelected로 Scene에 선 그리기 (1) | 2022.04.14 |
---|---|
유니티 - 드래그로 카메라 이동(Drag and Move Camera) (0) | 2022.04.14 |
유니티 - 드래그로 땅 위의 오브젝트 움직이기 (Drag and Move on the Ground) (0) | 2022.04.11 |
유니티 - 오브젝트를 선택된 상태로 만들기 : (2) 이미지로 만들기 (0) | 2022.04.09 |
유니티 - 슬라이더로 안개 조절하기 (Unity Fog Slider) (1) | 2022.03.27 |
댓글