void PositionWith(Vector3 handPosition, Quaternion handRotation, Mallet.MalletHand hand) { if (positioningHand != hand) { positioningHand = hand; previousPosition = handPosition; previousRotationX = handRotation.eulerAngles.x; } var pos = keyboard.keyboardWrapper.transform.localPosition; keyboard.keyboardWrapper.transform.localPosition = new Vector3( pos.x + (handPosition.x - previousPosition.x), pos.y + (handPosition.y - previousPosition.y), pos.z + (handPosition.z - previousPosition.z) ); var rot = keyboard.keyboardWrapper.transform.eulerAngles; keyboard.keyboardWrapper.transform.localRotation = Quaternion.Euler( rot.x + (handRotation.eulerAngles.x - previousRotationX), rot.y, rot.z ); previousPosition = handPosition; previousRotationX = handRotation.eulerAngles.x; }
void ResetState() { initialHandDistance = -1f; initialApplyScale = 1f; positioningHand = Mallet.MalletHand.None; }