void Update() { touchAxis = leftController.GetComponent <VRTK_ControllerEvents>().GetTouchpadAxis(); Ray ray = cam.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0)); /* print(ray); */ RaycastHit hit; if (Physics.Raycast(ray, out hit)) { if (hit.transform.tag == "Map" || hit.transform.tag == "house" || hit.transform.tag == "houseMarker") { internalCoordinates = map.transform.InverseTransformPoint(hit.point); if (internalCoordinates.y < -32 && loadingbarOnTop == false) { loadingBar.transform.localPosition = new Vector3(loadingBar.transform.localPosition.x, 3.2f, loadingBar.transform.localPosition.z); loadingbarOnTop = true; } else if (internalCoordinates.y > -32 && loadingbarOnTop == true) { loadingBar.transform.localPosition = new Vector3(loadingBar.transform.localPosition.x, -3.2f, loadingBar.transform.localPosition.z); loadingbarOnTop = false; } /* print(((internalCoordinates.y/256)*(170/Mathf.Pow(2, zoomLevel)/2)*2 + currentMiddlelatitude)); * print((internalCoordinates.x/256)*(360/Mathf.Pow(2, zoomLevel)/2)*2 + currentMiddlelongitude); */ Color tmp = Cube.GetComponent <SpriteRenderer>().color; //tmp.a = (Mathf.Abs(movementDifference)/0.15f); Cube.GetComponent <SpriteRenderer>().color = tmp; if (touchpadPressed) { prevZoom = googleScript.zoom; if (touchAxis.y > 0) { touchpadPressed = false; float lon_rad = googleScript.lon * Mathf.Deg2Rad; float lat_rad = googleScript.lat * Mathf.Deg2Rad; float n = Mathf.Pow(2, googleScript.zoom); float tileX = ((googleScript.lon + 180) / 360) * n; float tileY = n * (1 - (Mathf.Log(Mathf.Tan(lat_rad) + (1 / Mathf.Cos(lat_rad)), 2.71828f) / Mathf.PI)) / 2; float lon_deg = (tileX + (internalCoordinates.x / 64)) / n * 360 - 180; float lat_rad2 = Mathf.Atan((float)Math.Sinh(Mathf.PI * (1 - 2 * (tileY - (internalCoordinates.y / 64)) / n))); float lat_deg = lat_rad2 * 180.0f / Mathf.PI; googleScript.lat = lat_deg; googleScript.lon = lon_deg; prevLat = googleScript.lat; prevLon = googleScript.lon; googleScript.zoom += 1; if (googleScript.zoom == 13 && prevZoom == 12) { GameObject[] gameObjects = GameObject.FindGameObjectsWithTag("house"); foreach (GameObject target in gameObjects) { target.transform.localScale = new Vector3(1, 4, 1); } } zoomLevel += 1; dataloggerScript.zoomIn += 1; prevDistance = (transform.position - googleHolder.transform.position).z; } else if (touchAxis.y < 0 && prevZoom != 8 && prevZoom != 8) { touchpadPressed = false; if (prevZoom == 9) { googleScript.lat = 59.33459f; googleScript.lon = 18.06324f; } else { googleScript.lat = prevLat; googleScript.lon = prevLon; } googleScript.zoom -= 1; zoomLevel -= 1; dataloggerScript.zoomOut += 1; if (googleScript.zoom == 12 && prevZoom == 13) { GameObject[] gameObjects = GameObject.FindGameObjectsWithTag("house"); foreach (GameObject target in gameObjects) { target.transform.localScale = new Vector3(0.5f, 1, 0.5f); } } prevDistance = (transform.position - googleHolder.transform.position).z; } else if (touchAxis.y < 0 && prevZoom == 8) { touchpadPressed = false; } /* print(googleScript.lat); * print(googleScript.lon); */ currentMiddlelatitude = googleScript.lat; currentMiddlelongitude = googleScript.lon; StartCoroutine(googleScript.Map()); } if (start) { start = false; touchpadPressed = false; prevDistance = (transform.position - googleHolder.transform.position).z; } Cube.transform.position = new Vector3(hit.point.x, hit.point.y, googleHolder.transform.position.z); } } else { } }