private void getToNearestAngle(Vector3 offset) { float tangent = offset.z / offset.x; if (tangent >= 1 || tangent <= -1) { if (offset.z > 0.0f) { freeMoveMode = FreeMoveMode.front; } else { freeMoveMode = FreeMoveMode.behind; } } else { if (offset.x > 0.0f) { freeMoveMode = FreeMoveMode.right; } else { freeMoveMode = FreeMoveMode.left; } } }
private void switchAngle() { if (Input.GetKeyUp(KeyCode.Q) && freeMoveOnDesignedAngle) { switchedMode = false; Debug.Log(freeMoveMode); switch (freeMoveMode) { case FreeMoveMode.behind: freeMoveMode = FreeMoveMode.left; break; case FreeMoveMode.left: freeMoveMode = FreeMoveMode.front; break; case FreeMoveMode.front: freeMoveMode = FreeMoveMode.right; break; case FreeMoveMode.right: freeMoveMode = FreeMoveMode.behind; break; } Debug.Log("after: " + freeMoveMode); } if (Input.GetKeyUp(KeyCode.E) && freeMoveOnDesignedAngle) { switchedMode = false; switch (freeMoveMode) { case FreeMoveMode.behind: freeMoveMode = FreeMoveMode.right; break; case FreeMoveMode.left: freeMoveMode = FreeMoveMode.behind; break; case FreeMoveMode.front: freeMoveMode = FreeMoveMode.left; break; case FreeMoveMode.right: freeMoveMode = FreeMoveMode.front; break; } } switch (freeMoveMode) { case FreeMoveMode.behind: curFreeMovePositionOffsetBase = behindPositionOffsetBase; forward = new Vector3(0, 0.0f, 1); right = new Vector3(1, 0.0f, 0); left = new Vector3(-1, 0.0f, 0); backward = new Vector3(0, 0.0f, -1); break; case FreeMoveMode.left: curFreeMovePositionOffsetBase = leftPositionOffsetBase; forward = new Vector3(1, 0.0f, 0); right = new Vector3(0, 0.0f, -1); left = new Vector3(0, 0.0f, 1); backward = new Vector3(-1, 0.0f, 0); break; case FreeMoveMode.front: curFreeMovePositionOffsetBase = frontPositionOffsetBase; forward = new Vector3(0, 0.0f, -1); right = new Vector3(-1, 0.0f, 0); left = new Vector3(1, 0.0f, 0); backward = new Vector3(0, 0.0f, 1); break; case FreeMoveMode.right: curFreeMovePositionOffsetBase = rightPositionOffsetBase; forward = new Vector3(-1, 0.0f, 0); right = new Vector3(0, 0.0f, 1); left = new Vector3(0, 0.0f, -1); backward = new Vector3(1, 0.0f, 0); break; } }