private void Start() { //これらのIKは初期値から動かない事があるので、その場合にあまりに変になるのを防ぐのが狙い。 _leftHand.Position = keyboard.GetKeyTargetData("F").positionWithOffset; _leftHand.Rotation = Quaternion.Euler(0, 90, 0); _rightHand.Position = keyboard.GetKeyTargetData("J").positionWithOffset; _rightHand.Rotation = Quaternion.Euler(0, -90, 0); }
/// <summary> /// タイピング用に指を動かします。これは実際には、対応する指を探してHold()を呼び出す処理です。 /// </summary> /// <param name="key"></param> /// <param name="isLeftHandOnly"></param> public void HoldTypingKey(string key, bool isLeftHandOnly) { var fingerNumber = _keyboard.GetKeyTargetData(key, isLeftHandOnly).fingerNumber; _isTypingBending[fingerNumber] = true; //普通こっちのフラグは立ってないハズだけど、念のため。 _isTypingReleasing[fingerNumber] = false; //今から曲げようとしてる指以外が打鍵状態だったら離す int startIndex = (fingerNumber < 5) ? 0 : 5; for (int i = startIndex; i < startIndex + 5; i++) { if (i != fingerNumber && _isTypingBending[i]) { _isTypingBending[i] = false; _isTypingReleasing[i] = true; } } }
public void StartPressKeyMotion(string key, bool isLeftHandOnly) { StartMoveFinger(_keyboard.GetKeyTargetData(key, isLeftHandOnly).fingerNumber); }