// TODO: this should only be visible if a database is loaded void Start() { Camera = Camera.main; UserObject = Camera.transform.parent.gameObject; TerrainTester = GameObject.Find("TerrainTester"); SurfaceCollider = TerrainTester.GetComponent <Cognitics.UnityCDB.SurfaceCollider>(); }
private void Start() { Input.simulateMouseWithTouches = false; ModeButton = ModeButtonGameObject.GetComponent <ModeButton>(); //StartCoroutine(SurfaceCollider_CR()); surfaceCollider = GetComponent <Cognitics.UnityCDB.SurfaceCollider>();; TerrainTester = GameObject.Find("TerrainTester"); SurfaceCollider = TerrainTester.GetComponent <Cognitics.UnityCDB.SurfaceCollider>(); eventDataCurrentPosition = new PointerEventData(EventSystem.current); }
static public void Calculate() { pinchDistance = pinchDistanceDelta = 0; turnAngle = turnAngleDelta = 0; terrainTester = GameObject.Find("TerrainTester"); SurfaceCollider = terrainTester.GetComponent <Cognitics.UnityCDB.SurfaceCollider>(); if (Input.touchCount == 2) { Touch touch1 = Input.touches[0]; Touch touch2 = Input.touches[1]; if (touch1.phase == TouchPhase.Moved || touch2.phase == TouchPhase.Moved || Input.GetKey(KeyCode.F)) { Ray ray = Camera.main.ViewportPointToRay(new Vector2(.5f, .5f)); terrainTester.transform.position = Camera.main.transform.position; while (true) { if (!checkForPoint) { break; } terrainTester.transform.position += ray.direction * 15f; SurfaceCollider.TerrainElevationGetter(); if (terrainTester.transform.position.y < SurfaceCollider.minCameraElevation) { break; } if (Vector3.SqrMagnitude(terrainTester.transform.position - Camera.main.transform.position) > (50000f * 50000f)) { pivotPoint = Vector3.positiveInfinity; checkForPoint = false; } } pivotPoint = terrainTester.transform.position; touchDirection = Vector2.Dot(touch1.deltaPosition, touch2.deltaPosition); twoTouchDelta = touch1.deltaPosition.y + touch2.deltaPosition.y; pinchDistance = Vector2.Distance(touch1.position, touch2.position); float prevDistance = Vector2.Distance(touch1.position - touch1.deltaPosition, touch2.position - touch2.deltaPosition); pinchDistanceDelta = pinchDistance - prevDistance; if (Mathf.Abs(pinchDistanceDelta) > minPinchDistance) { pinchDistanceDelta *= pinchRatio; } else { pinchDistance = pinchDistanceDelta = 0; } turnAngle = Angle(touch1.position, touch2.position); float prevTurn = Angle(touch1.position - touch1.deltaPosition, touch2.position - touch2.deltaPosition); turnAngleDelta = Mathf.DeltaAngle(prevTurn, turnAngle); if (Mathf.Abs(turnAngleDelta) > minTurnAngle) { turnAngleDelta *= pinchTurnRatio; } else { turnAngle = turnAngleDelta = 0; } } } }