/
MouseMovement.cs
44 lines (35 loc) · 997 Bytes
/
MouseMovement.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using UnityEngine;
using System.Collections;
public class MouseMovement : MonoBehaviour {
public Camera distanceCamera;
Vector3 defaultPosition;
Vector3 screenPosition;
Vector3 offset;
bool isDragging;
void Start ()
{
isDragging = false;
defaultPosition = transform.position;
}
void Update()
{
if(!isDragging)
transform.position = defaultPosition;
}
void OnMouseDown()
{
isDragging = true;
screenPosition = distanceCamera.WorldToScreenPoint(gameObject.transform.position);
offset = gameObject.transform.position - distanceCamera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z));
}
void OnMouseDrag()
{
Vector3 screenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z);
//Debug.Log(Camera.main.ScreenToWorldPoint(screenPoint) + offset);
transform.position = distanceCamera.ScreenToWorldPoint(screenPoint) + offset;
}
void OnMouseUp()
{
isDragging = false;
}
}