private void OnDotTouched(Dot dot) { if (dot.isTouching) { return; } if (!_lastDot) { SelectDot(); } if (_lastDot != dot && _lastDot.ColorId == dot.ColorId && Mathf.Abs(dot.Coordinates.x - _lastDot.Coordinates.x) <= 1 && Mathf.Abs(dot.Coordinates.y - _lastDot.Coordinates.y) <= 1 && (dot.Coordinates.x == _lastDot.Coordinates.x || dot.Coordinates.y == _lastDot.Coordinates.y)) { SelectDot(); } void SelectDot() { dot.isTouching = true; _selectedDots.Add(dot); _lastDot = dot; } lineController.DrawLine(_selectedDots); }
// Update is called once per frame void Update() { RaycastHit2D hit; hit = Physics2D.Raycast(this.transform.position, new Vector2(this.transform.position.x, -10)); Debug.Log(this.transform.position.x + " .......... " + hit.transform.position.x); Debug.Log(hit.transform.name); LineController line = transform.Find("LineGenerator").GetComponent <LineController>(); line.DrawLine(new List <Vector3> { this.gameObject.transform.position, hit.transform.position }); }
// Update is called once per frame void Update() { Vector3 startPos = this.transform.position; float moveX = Input.GetAxis("Mouse X") * m_sensitivityX; float moveY = Input.GetAxis("Mouse Y") * m_sensitivityY; if (m_isDeviationActive) { switch (m_deviationDir) { case "Left": transform.Translate(moveX - moveY * m_deviation, moveY, 0); break; case "Right": transform.Translate(moveX + moveY * m_deviation, moveY, 0); break; case "Down": transform.Translate(moveX, moveY - moveX * m_deviation, 0); break; default: // Up transform.Translate(moveX, moveY + moveX * m_deviation, 0); break; } } else { transform.Translate(moveX, moveY, 0); } // create line LineController.DrawLine(startPos, transform.position); // left click if (m_isReturnToStart == false && Input.GetMouseButtonDown(0)) { Debug.Log($"X = {transform.position.x}, Y = {transform.position.y}"); // send position in click event CursorClicked?.Invoke(this.gameObject, null); // must return to start now m_isReturnToStart = true; GameObject.FindGameObjectWithTag("StartText").GetComponent <Text>().text = "RETURN"; //removed: reset position of cursor //transform.position = m_respawnObj.transform.position; } else if (m_isReturnToStart == true) { float bound = m_respawnObj.GetComponent <SpriteRenderer>().bounds.size.x; Vector2 respawnPos = new Vector2(m_respawnObj.transform.position.x, m_respawnObj.transform.position.y); Vector2 cursorPos = new Vector2(this.transform.position.x, this.transform.position.y); // if close enough float distance = Vector2.Distance(respawnPos, cursorPos); if (distance <= bound) { m_isReturnToStart = false; GameObject.FindGameObjectWithTag("StartText").GetComponent <Text>().text = "GO"; } } }