public static Vector3 translateMMaptoMap(Vector3 localPose, monoMiniMap mMap) { Vector3 GlobalPose = new Vector3(); GlobalPose.x = localPose.x * mMap.mainMap.terrainData.size.x; GlobalPose.z = localPose.z * mMap.mainMap.terrainData.size.z; GlobalPose.y = localPose.y * mMap.mainMap.terrainData.size.x; return(GlobalPose); }
// Update is called once per frame void Update() { if (Controller.GetPress(SteamVR_Controller.ButtonMask.Trigger) || triggerDown) { triggerDown = true; RaycastHit hit; // 2 if (Physics.Raycast(trackedObj.transform.position, transform.forward, out hit, 1000)) { hitPoint = hit.point; ShowLaser(hit); reticle.SetActive(true); if (hit.collider.gameObject.name == "miniMap") { hitPoint = hit.collider.gameObject.transform.InverseTransformPoint(hitPoint); hitPoint = (hitPoint * map.map_width); hitPoint.x = hitPoint.x - (Generate_Terrain.tile_width); hitPoint.z = hitPoint.z - (Generate_Terrain.tile_height); RaycastHit findHit; Physics.Raycast(new Vector3(hitPoint.x, 3000, hitPoint.z), Vector3.down, out findHit); hitPoint.y = findHit.point.y; teleTimeType.y = 1; } else if (hit.collider.gameObject.GetComponent <monoMiniMap>() != null) { monoMiniMap miniMap = hit.collider.gameObject.GetComponent <monoMiniMap>(); hitPoint = hit.collider.gameObject.transform.InverseTransformPoint(hitPoint); hitPoint = (hitPoint * miniMap.mainMap.terrainData.size.x); hitPoint.y = miniMap.mainMap.terrainData.GetHeight((int)hitPoint.x, (int)hitPoint.z); teleTimeType.y = 1; } else { teleTimeType.y = 0; } //Debug.Log(hitPoint.x + " " + hitPoint.y + " " + hitPoint.z); teleportReticleTransform.position = hitPoint + teleportReticleOffset; shouldTeleport = true; } } else // 3 { laser.SetActive(false); reticle.SetActive(false); } if (Controller.GetPressUp(SteamVR_Controller.ButtonMask.Trigger) && shouldTeleport) { triggerDown = false; Teleport(); } }
public static Vector3 translateMaptoMMap(Vector3 GlobalPose, monoMiniMap mMap) { Vector3 localPose = new Vector3(); localPose.x = GlobalPose.x; localPose.z = GlobalPose.z; localPose.y = GlobalPose.y; localPose = localPose / mMap.mainMap.terrainData.size.x; return(localPose); }
// Update is called once per frame void FixedUpdate() { hitMiniMap = false; if (Controller.GetPress(SteamVR_Controller.ButtonMask.Trigger) || triggerDown) { triggerDown = true; RaycastHit hit; //values to tweak for better range of arc/precision. velocity.x = 3.5f; velocity.y = 1.5f; points = arcPoints(velocity.x, velocity.y); int hitnum; hit = ArcedRaycast(points, out hitnum); //change paraments //ShowArcedLaser(points, hitPoint, hitnum, hit); if (hit.collider != null) { // UnityEngine.Debug.Log("hit.collider is not null"); hitPoint = hit.point; ShowArcedLaser(points, hitPoint, hitnum, hit); // End of additional input in this function //don't touch reticle.SetActive(true); if (hit.collider.gameObject.name == "miniMap") { // UnityEngine.Debug.Log("hit collides with miniMap"); hitMiniMap = true; hitPoint = hit.collider.gameObject.transform.InverseTransformPoint(hitPoint); hitPoint = (hitPoint * map.map_width); hitPoint.x = hitPoint.x - (Generate_Terrain.tile_width); hitPoint.z = hitPoint.z - (Generate_Terrain.tile_height); RaycastHit findHit; Physics.Raycast(new Vector3(hitPoint.x, 3000, hitPoint.z), Vector3.down, out findHit); hitPoint.y = findHit.point.y; teleTimeType.y = 1; } else if (hit.collider.gameObject.GetComponent <monoMiniMap>() != null) { hitMiniMap = true; monoMiniMap miniMap = hit.collider.gameObject.GetComponent <monoMiniMap>(); hitPoint = hit.collider.gameObject.transform.InverseTransformPoint(hitPoint); hitPoint = (hitPoint * miniMap.mainMap.terrainData.size.x); hitPoint.y = miniMap.mainMap.terrainData.GetHeight((int)hitPoint.x, (int)hitPoint.z); teleTimeType.y = 1; } else { teleTimeType.y = 0; } //Debug.Log(hitPoint.x + " " + hitPoint.y + " " + hitPoint.z); // teleportReticleTransform.position = hitPoint + teleportReticleOffset; shouldTeleport = true; } // UnityEngine.Debug.Log("hit.collider is null"); } else // 3 { for (int i = 0; i < laser.Count; i++) { laser[i].SetActive(false); } reticle.SetActive(false); } if (Controller.GetPressUp(SteamVR_Controller.ButtonMask.Trigger) && shouldTeleport) { triggerDown = false; Teleport(); } }