// Update is called once per frame void Update() { //Camera Drag & Zoom { if (Input.GetMouseButtonDown(1)) { _cameraOldPos = Camera.main.transform.position; } if (Input.GetMouseButton(1)) { Vector3 pos = Camera.main.ScreenToViewportPoint(Input.mousePosition); if (Mathf.Abs(_cameraOldPos.x - pos.x) > 0 || Mathf.Abs(_cameraOldPos.y - pos.y) > 0) { if (false == _bDrag) { _cameraOldPos += pos * _dragSpeed; _bDrag = true; } Camera.main.transform.position = _cameraOldPos + -pos * _dragSpeed; } } if (Input.GetMouseButtonUp(1)) { _bDrag = false; } float wheelInput = Input.GetAxis("Mouse ScrollWheel"); if (eMouseOn.WORKSPACE == _eMouseOn && (wheelInput > 0 || wheelInput < 0)) { Camera.main.orthographicSize += -wheelInput; } } //Tile Transform if (Input.GetKeyDown(KeyCode.T)) { _bTransformMode = !_bTransformMode; _selectedMenuTile = null; _selectedTileObject = null; if (_bTransformMode) { Debug.Log("Transform mode On"); } else { Debug.Log("Transform mode Off"); } } //Raycast on MenuObject or TileObject if (Input.GetMouseButton(0)) { if (EventSystem.current.IsPointerOverGameObject()) { return; } if (null != _selectedMenuTile || _bTransformMode) { Vector2 worldPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); RaycastHit2D hit = Physics2D.Raycast(worldPoint, Vector2.zero); if (null != hit.collider) { GridTile tile = hit.collider.GetComponent <GridTile>(); if (false == _bTransformMode) { Sprite sprite = _selectedMenuTile.GetComponent <Image>().sprite; tile.SetTileObjectBySprite(sprite); tile.SetCanMove(_bCanMove); } else { _selectedTileObject = tile; } } } } //Tile Transform if (null != _selectedTileObject) { if (null != _selectedTileObject.GetTileObject()) { if (Input.GetKeyDown(KeyCode.UpArrow)) { _selectedTileObject.IncreasePosition(); } else if (Input.GetKeyDown(KeyCode.DownArrow)) { _selectedTileObject.DecreasePosition(); } } } }