반응형
Touch로 모바일에서 터치 앤 드래그를 구현하려했으나 뭔가 이상해서 다른 기능을 찾아봤다.
모바일 환경에서 Input.mousePoint와 OnMouseDrag를 이용하길래 이게 될까 싶어서 해봤는데...
잘됐다...
MouseDragObejct 스크립트
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MouseDragObject : MonoBehaviour
{
private Vector3 mOffset;
private float mZCoord;
void OnMouseDown()
{
mZCoord = Camera.main.WorldToScreenPoint(gameObject.transform.position).z;
// Store offset = gameobject world pos - mouse world pos
mOffset = gameObject.transform.position - GetMouseAsWorldPoint();
}
private Vector3 GetMouseAsWorldPoint()
{
// Pixel coordinates of mouse (x,y)
Vector3 mousePoint = Input.mousePosition;
// z coordinate of game object on screen
mousePoint.z = mZCoord;
// Convert it to world points
return Camera.main.ScreenToWorldPoint(mousePoint);
}
void OnMouseDrag()
{
Vector3 objectPos = GetMouseAsWorldPoint() + mOffset;
objectPos.y = 0.1f;
transform.position = objectPos;
}
//마우스로 해도 모바일에선 터치로 작동되나? 왜 되지
}
반응형
'게임 개발 > 유니티' 카테고리의 다른 글
파티클 시스템 - 파이어볼 구현 (0) | 2020.04.29 |
---|---|
Touch (0) | 2020.04.29 |
Mathf.SmoothStep (0) | 2020.04.29 |
Vector3.Lerp (0) | 2020.04.29 |
Vector3.Slerp (0) | 2020.04.14 |
댓글