private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "NumberBoxLayer") { if (selectedNumberBox != null) { selectedNumberBox.GetComponent <SpriteRenderer>().color = Color.white; selectedNumberBox = null; } NumberBoxesController numberController = collision.GetComponent <NumberBoxesController>(); bool selectedBoxIsFull = numberController.numberBoxIsFull; if (!selectedBoxIsFull) { selectedNumberBox = collision.gameObject; selectedNumberBox.gameObject.GetComponent <SpriteRenderer>().color = Color.green; } } else if (collision.tag == "RightSide" && numberIsPlaced) { sideIsMarkt = true; } }
void PanGesture_StateUpdated(GestureRecognizer gesture) { if (gameObject != null) { switch (gesture.State) { case GestureRecognizerState.Began: Vector2 pos = new Vector2(gesture.FocusX, gesture.FocusY); pos = Camera.main.ScreenToWorldPoint(pos); offset = transform.position - (Vector3)pos; RaycastHit2D hit = Physics2D.Raycast(pos, Vector2.zero); if (hit.collider != null && hit.collider.gameObject == gameObject) { check(); currentGameObject = gameObject; dragging = true; if (selectedNumberBox != null) { selectedNumberBox.GetComponent <NumberBoxesController>().numberBoxIsFull = false; } } break; case GestureRecognizerState.Executing: if (dragging) { Vector2 newPos = new Vector2(gesture.FocusX, gesture.FocusY); newPos = Camera.main.ScreenToWorldPoint(newPos); transform.position = (Vector3)newPos + offset; } break; case GestureRecognizerState.Ended: if (selectedNumberBox != null) { NumberBoxesController numberBoxesController = selectedNumberBox.GetComponent <NumberBoxesController>(); int newNumberBoxIndex = numberBoxesController.numberBoxIndex; if (currentGameObject == gameObject) { if (numberIsPlaced) { GameManager.Instance.MoveNumberToNewBox(gameObject, number, newNumberBoxIndex, numberBoxIndex); } else { GameManager.Instance.RemoveCollectedNumber(gameObject); GameManager.Instance.AddNumberToBox(gameObject, number, newNumberBoxIndex); numberIsPlaced = true; } //GameObject kan bli null om senast adderade bokstaven gjorde så att ordet var rätt if (gameObject != null) { selectedNumberBox.GetComponent <NumberBoxesController>().numberBoxIsFull = true; transform.position = selectedNumberBox.transform.position; startingPosition = selectedNumberBox.transform; numberBoxIndex = newNumberBoxIndex; } } currentGameObject = null; } else { if (sideIsMarkt && (GameManager.Instance.collectedNumbers.Count < GameManager.Instance.numberPositions.Count)) { startingPosition = GameManager.Instance.numberPositions[GameManager.Instance.collectedNumbers.Count].transform; LeanTween.move(gameObject, startingPosition, 0.1f); GameManager.Instance.PanNumberBackToSide(gameObject, numberBoxIndex); //LeanTween.scale(leftSide, new Vector3(originalLeftSideSize.x - 0.1f, originalLeftSideSize.y, 0), 0.1f); sideIsMarkt = false; numberIsPlaced = false; } else { LeanTween.move(gameObject, startingPosition.position, 0.1f); if (selectedNumberBox != null) { selectedNumberBox.GetComponent <NumberBoxesController>().numberBoxIsFull = true; } } } dragging = false; break; } } }