void CameraDragMode() { // Need to change it a lot // Raycast focus point on tilemap and drag that location around. if (Input.GetMouseButtonUp(0)) { Debug.Log("Drag mode: OFF"); MouseUpdateFunction = DetectMouseMode; } // Works fine. Camera.main.transform.Translate(0.01f * (MouseDownPosition - Input.mousePosition)); MouseDownPosition = Input.mousePosition; // TODO: Need to add camera inertia. }
void DetectMouseMode() { if (Input.GetMouseButtonDown(0)) { MouseDownPosition = Input.mousePosition; Debug.Log("Down"); } else if (Input.GetMouseButton(0) && Vector3.Distance(MouseDownPosition, Input.mousePosition) > MouseDragThreshold) { Debug.Log("Drag mode: ON"); MouseUpdateFunction = CameraDragMode; //MouseUpdateFunction(); } else if (Input.GetMouseButtonUp(0)) { Tile TempTile = GetTile(); if (TempTile != null) { Vector3 tilePos = TempTile.Position(); Debug.Log("Up: " + tilePos.ToString("F4")); TileHighlight.transform.position = new Vector3(tilePos.x, TileHighlight.transform.position.y, tilePos.z); } } }
void Start() { MouseUpdateFunction = DetectMouseMode; tileMap = GameObject.FindObjectOfType <TileMap>(); }