rabidus-test/Assets/BNG Framework/HandPoser/Scripts/SavePoseBinding.cs

68 lines
2.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
#if ENABLE_INPUT_SYSTEM
using UnityEngine.InputSystem;
#endif
namespace BNG {
public class SavePoseBinding : MonoBehaviour {
[Header("Save Input : ")]
#if ENABLE_INPUT_SYSTEM
[Tooltip("If this InputAction returns true, save the current hand pose using 'handPoser.CreateUniquePose(SaveNamePrefix)'")]
public InputAction SaveInput;
#elif ENABLE_LEGACY_INPUT_MANAGER
public KeyCode SaveKey = KeyCode.Space;
#endif
[Header("Save name prefix : ")]
[Tooltip("Prefix of the hand pose file name to use. For example, a prefix of 'HandPose' will save as 'HandPose 1', 'HandPose 2', etc.")]
public string SaveNamePrefix = "HandPose";
[Header("Debug : ")]
[Tooltip("If true, the SaveInput binding will be shown on the screen gui. Will not show in VR.")]
public bool ShowKeybindingToolTip = true;
HandPoser handPoser;
void Start() {
handPoser = GetComponent<HandPoser>();
#if ENABLE_INPUT_SYSTEM
// Action must be enabled before it can be used
if(SaveInput != null) {
SaveInput.Enable();
}
#endif
}
void Update() {
#if ENABLE_INPUT_SYSTEM
// New Input Save
if (SaveInput != null && SaveInput.triggered) {
handPoser.CreateUniquePose(SaveNamePrefix);
Debug.Log("Created Hand Pose with prefix " + SaveNamePrefix);
}
#elif ENABLE_LEGACY_INPUT_MANAGER
// Legacy Save
if (Input.GetKeyDown(SaveKey)) {
handPoser.CreateUniquePose(SaveNamePrefix);
Debug.Log("Created Hand Pose with prefix " + SaveNamePrefix);
}
#endif
}
void OnGUI() {
if(ShowKeybindingToolTip) {
#if ENABLE_INPUT_SYSTEM
GUI.Box(new Rect(20, 20, 480, 24), "Press '<b>" + SaveInput.bindings[0].path + "</b>' to save the current hand pose");
#elif ENABLE_LEGACY_INPUT_MANAGER
GUI.Box(new Rect(20, 20, 480, 24), "Press '<b>" + SaveKey.ToString() + "</b>' to save the current hand pose");
#endif
}
}
}
}