private void setFingerBones(ref Transform[] bones, Vector2 angles, Senso.EFingerType fingerType) { if (fingerType == Senso.EFingerType.Thumb) { setThumbBones(ref bones, ref angles); } else { var fingerIdx = (int)fingerType; var vec = new Vector3(-angles.y, 0, angles.x); if (vec.x > 0.0f) { vec.z += fingerInitialRotations[fingerIdx][0].eulerAngles.z; bones[0].localEulerAngles = vec; } else { var v = vec; v.x /= 3.0f; bones[0].localRotation = fingerInitialRotations[fingerIdx][0]; bones[0].Rotate(v); vec.z = 0.0f; vec.x /= 1.5f; for (int j = 1; j < bones.Length; ++j) { bones[j].localRotation = fingerInitialRotations[fingerIdx][j]; bones[j].Rotate(vec); } } } }
public void VibrateFinger(Senso.EFingerType finger, ushort duration, byte strength) { if (m_sensoHandsController.IsAlive) { SensoHandsController man = m_sensoHandsController.Target as SensoHandsController; man.SendVibro(HandType, finger, duration, strength); } }
void TriggerButton() { if (ButtonListeners != null) { // Trigger our callbacks ButtonListeners.Invoke(this); } foreach (SensoHandExample InteractionObj in ActiveControllers) { // Trigger a response on any active controllers foreach (string VibroFinger in ActiveFingers) { Senso.EFingerType finger = (Senso.EFingerType)Enum.Parse(typeof(Senso.EFingerType), VibroFinger); switch (ButtonNumber) { case 1: InteractionObj.VibrateFinger(finger, 500, 5); break; case 2: break; case 3: break; case 4: break; case 5: break; case 6: break; case 7: break; case 8: break; case 9: break; case 10: break; default: InteractionObj.VibrateFinger(finger, 500, 5); break; } } } }
public void SendVibro(Senso.EPositionType handType, Senso.EFingerType finger, ushort duration, byte strength) { sensoThread.VibrateFinger(handType, finger, duration, strength); }