private void MaybeSelectObject(Touch2 touch) { if (_selectedObject != null) { return; } if (touch.Phase == TouchPhase.Began) { ResetLongPressTimer(); } if (touch.Phase != TouchPhase.Stationary) { return; } if (Time.time - _longpressTime < _touchPhaseBeganTime) { return; } ResetLongPressTimer(); var origin = _camera.ScreenToWorldPoint(touch.Position); var hit = Physics2D.Raycast(origin, Vector2.zero, 10, Constants.Layers.Ground); if (touch.Phase == TouchPhase.Began) { Debug.Log("_camera touch at " + origin); } Debug.DrawRay(origin, Vector3.forward * 10, Color.red, 10f); if (hit.collider == null) { return; } var selected = hit.collider.gameObject.GetComponent <SelectOnTouch>(); if (selected == null) { return; } Debug.Log("Selecting object " + hit.collider.gameObject.name); selected.Select(); _selectedObject = selected; }
private void MaybeDeselectObject(Touch2 touch) { if (_selectedObject == null) { return; } if (touch.Phase != TouchPhase.Ended) { return; } Debug.Log("Deselecting object"); _selectedObject.Deselect(); _selectedObject = null; _touchPhaseBeganTime = float.MaxValue; }