void Update() { if (!_hasSpawnedCursor) { // Cursor _cursor = Instantiate(CursorPrefab); _cursor.transform.SetParent(CursorUI.transform); _cursor.transform.localScale = Vector3.one; //_cursor.GetComponent<Image>().color = _teamController.TeamColor; _cursorTransform = _cursor.GetComponent <RectTransform>(); //_input.SetMousePositionOffset((new Vector2(pos.x, pos.y) - new Vector2(_input.GetMouseX(), _input.GetMouseY()))/_cursorCanvas.scaleFactor); _hasSpawnedCursor = true; } // Update position if (_playerController.IsAlive()) { Vector3 pos = Camera.main.WorldToScreenPoint(transform.position); SetCursorPosition(new Vector2(pos.x, pos.y) + new Vector2(_input.GetMouseX(), _input.GetMouseY())); } // Or disable else { _cursor.SetActive(false); } }