// Update is called once per frame void Update() { // continue to next scene, saving the coordinates of the corner circles as state if (Input.GetKeyDown("space")) { cornerCircleCoordinates = GetCoordinateFloatArray(); RecordBounds(cornerCircleCoordinates); Serialize(path, cornerCircleCoordinates); SceneManager.LoadScene(SceneUtils.SceneNames.holdSetup); } // reset to outer corners if (Input.GetKeyDown("r")) { Vector2 topLeft = ClimbARUtils.fractionToWorldSpace(0f, 0f, this.mainCam); Vector2 topRight = ClimbARUtils.fractionToWorldSpace(1f, 0f, this.mainCam); Vector2 bottomRight = ClimbARUtils.fractionToWorldSpace(1f, 1f, this.mainCam); Vector2 bottomLeft = ClimbARUtils.fractionToWorldSpace(0f, 1f, this.mainCam); PositionCircles(topLeft, topRight, bottomRight, bottomLeft); } if (Input.GetKeyDown("escape")) { GameObject confirmCanvas = GameObject.Find("ConfirmCanvas"); CanvasGroup exitGroup = confirmCanvas.GetComponent <CanvasGroup>(); exitGroup.blocksRaycasts = true; exitGroup.alpha = 1; exitGroup.interactable = true; } }
void DrawBorder(float width) { Vector2 topLeft = ClimbARUtils.fractionToWorldSpace(0f, 0f, this.mainCam);; Vector2 bottomLeft = ClimbARUtils.fractionToWorldSpace(0f, 1f, this.mainCam); Vector2 topRight = ClimbARUtils.fractionToWorldSpace(1f, 0f, this.mainCam); Vector2 bottomRight = ClimbARUtils.fractionToWorldSpace(1f, 1f, this.mainCam); DrawLine(topLeft, bottomLeft, width); DrawLine(topRight, bottomRight, width); DrawLine(topLeft, topRight, width); DrawLine(bottomLeft, bottomRight, width); }
/// <summary> /// 0, 1, 2, 3 -> top left, top right, bottom right, bottom left /// </summary> void InitCornerCircles() { this.cornerCircles = new GameObject[4]; for (int i = 0; i < 4; i++) { this.cornerCircles[i] = GameObject.Instantiate(CornerCircle); this.cornerCircles[i].name = "CornerCircle " + (i); } this.cornerCircles[0].transform.localPosition = ClimbARUtils.fractionToWorldSpace(0.1f, 0.1f, this.mainCam); this.cornerCircles[1].transform.localPosition = ClimbARUtils.fractionToWorldSpace(0.9f, 0.1f, this.mainCam); this.cornerCircles[2].transform.localPosition = ClimbARUtils.fractionToWorldSpace(.9f, .9f, this.mainCam); this.cornerCircles[3].transform.localPosition = ClimbARUtils.fractionToWorldSpace(0.1f, 0.9f, this.mainCam); }
private void RecordBounds(float[] cornerCircleCoordinates) { float upperY = (cornerCircleCoordinates[1] + cornerCircleCoordinates[3]) / 2; float lowerY = (cornerCircleCoordinates[5] + cornerCircleCoordinates[7]) / 2; // 0,0 is top left, +y points down StateManager.instance.kinectUpperLeft = ClimbARUtils.worldSpaceToFraction( cornerCircleCoordinates[0], cornerCircleCoordinates[1], mainCam); StateManager.instance.kinectUpperRight = ClimbARUtils.worldSpaceToFraction( cornerCircleCoordinates[2], cornerCircleCoordinates[3], mainCam); StateManager.instance.kinectLowerRight = ClimbARUtils.worldSpaceToFraction( cornerCircleCoordinates[4], cornerCircleCoordinates[5], mainCam); StateManager.instance.kinectLowerLeft = ClimbARUtils.worldSpaceToFraction( cornerCircleCoordinates[6], cornerCircleCoordinates[7], mainCam); }