Dave Boyle

Button drag stuff works. Just need to set up client / server stuff

...@@ -6,18 +6,74 @@ public class MoviePlayNode : MonoBehaviour ...@@ -6,18 +6,74 @@ public class MoviePlayNode : MonoBehaviour
6 { 6 {
7 [SerializeField] 7 [SerializeField]
8 private Text _textNode; 8 private Text _textNode;
9 + [SerializeField]
10 + private Transform _dragTarget;
11 + [SerializeField]
12 + private float _moveSpeed;
13 + [SerializeField]
14 + private Collider2D _button;
15 +
9 private string _filename; 16 private string _filename;
10 private NetworkUser _netNode; 17 private NetworkUser _netNode;
18 + private Vector3 _initPos;
19 + private RectTransform _xform;
20 +
21 + private void Start()
22 + {
23 + _initPos = _button.transform.position;
24 + _xform = _button.transform.GetComponent<RectTransform>();
25 + }
11 26
12 public void Initialize(string title, string filename, NetworkUser parent) 27 public void Initialize(string title, string filename, NetworkUser parent)
13 { 28 {
14 _textNode.text = title; 29 _textNode.text = title;
15 _filename = filename; 30 _filename = filename;
16 _netNode = parent; 31 _netNode = parent;
32 +
33 + gameObject.name = title;
34 + }
35 +
36 + private bool _isDragging = false;
37 +
38 + public void Drag(UnityEngine.EventSystems.BaseEventData test)
39 + {
40 + _isDragging = true;
41 + iTween.Stop(_button.gameObject);
42 +
43 + var ped = (UnityEngine.EventSystems.PointerEventData)test;
44 + _button.transform.position += Vector3.up * ped.delta.y;
45 +
46 + if (_button.transform.position.y >= _dragTarget.position.y)
47 + {
48 + _isDragging = false;
49 + PlayMovie();
50 + }
51 +
52 + if (_button.transform.position.y > _dragTarget.position.y)
53 + _button.transform.position = new Vector3(_button.transform.position.x, _dragTarget.position.y, _button.transform.position.z);
54 +
55 + if (_button.transform.position.y < _initPos.y)
56 + _button.transform.position = new Vector3(_button.transform.position.x, _initPos.y, _button.transform.position.z);
17 } 57 }
18 58
59 + public void DragEnd()
60 + {
61 + iTween.MoveTo(_button.gameObject, iTween.Hash(
62 + "y", _initPos.y,
63 + "speed", _moveSpeed
64 + ));
65 +
66 + _isDragging = false;
67 + _canPlay = true;
68 + }
69 +
70 + private bool _canPlay = true;
71 +
19 public void PlayMovie() 72 public void PlayMovie()
20 { 73 {
74 + if (!_canPlay || _isDragging) return;
75 +
21 _netNode.CmdLoadVideo(_filename); 76 _netNode.CmdLoadVideo(_filename);
77 + _canPlay = false;
22 } 78 }
23 } 79 }
......