12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- using Unity.VisualScripting;
- using UnityEngine;
- using UnityEngine.InputSystem;
- public class PlayerGestureController : MonoBehaviour
- {
- // Start is called once before the first execution of Update after the MonoBehaviour is created
- GestureManager gestureManager = new();
- bool mouseIsHolding;
- private float samplingRate = 10f;
- string gestureImport = "{\"isRecording\":true,\"gesturePointOffsetList\":[{\"distance\":0.0,\"angle\":0.0},{\"distance\":464.4292,\"angle\":7.7310133},{\"distance\":525.5289,\"angle\":19.6145878},{\"distance\":78.6164856,\"angle\":4.914661},{\"distance\":358.430267,\"angle\":12.2420845},{\"distance\":425.73465,\"angle\":9.383285},{\"distance\":71.19999,\"angle\":1.90669942},{\"distance\":808.462341,\"angle\":29.03117},{\"distance\":225.0,\"angle\":13.1364317},{\"distance\":725.766,\"angle\":32.899292},{\"distance\":533.919,\"angle\":9.264378},{\"distance\":26.3523083,\"angle\":0.60522604},{\"distance\":631.6866,\"angle\":16.5010319},{\"distance\":636.5053,\"angle\":26.3214626},{\"distance\":463.1565,\"angle\":10.5568171},{\"distance\":308.445953,\"angle\":10.8056364},{\"distance\":25.0,\"angle\":1.15521348},{\"distance\":300.115723,\"angle\":11.1135969},{\"distance\":101.379372,\"angle\":1.6076647},{\"distance\":300.462646,\"angle\":1.297695},{\"distance\":63.4648132,\"angle\":0.04423466},{\"distance\":247.767838,\"angle\":9.756912},{\"distance\":967.564453,\"angle\":27.8000526},{\"distance\":878.9594,\"angle\":21.9332256},{\"distance\":234.668808,\"angle\":8.833555},{\"distance\":752.957153,\"angle\":26.2024021},{\"distance\":1008.47113,\"angle\":28.9064255},{\"distance\":356.000122,\"angle\":9.308502},{\"distance\":801.5611,\"angle\":27.6516647},{\"distance\":1075.12927,\"angle\":34.9436874},{\"distance\":621.0431,\"angle\":18.19483},{\"distance\":397.3,\"angle\":13.9511576},{\"distance\":1016.66681,\"angle\":36.0042572},{\"distance\":760.345459,\"angle\":22.9445572},{\"distance\":92.0447,\"angle\":3.789616},{\"distance\":852.6105,\"angle\":21.6626263},{\"distance\":860.3941,\"angle\":28.3943272},{\"distance\":674.9486,\"angle\":26.80955},{\"distance\":325.0,\"angle\":0.175829366},{\"distance\":698.8583,\"angle\":9.153904},{\"distance\":800.3906,\"angle\":13.9995489},{\"distance\":584.819641,\"angle\":16.91097},{\"distance\":342.072937,\"angle\":11.1812334},{\"distance\":577.951355,\"angle\":0.1203313},{\"distance\":702.426331,\"angle\":14.2448149},{\"distance\":692.4695,\"angle\":23.8653164},{\"distance\":350.891785,\"angle\":10.5093842},{\"distance\":551.8278,\"angle\":4.47619057},{\"distance\":660.9127,\"angle\":11.701745},{\"distance\":620.5398,\"angle\":16.0864658},{\"distance\":388.462067,\"angle\":15.5555344},{\"distance\":501.387054,\"angle\":0.737278938},{\"distance\":767.0742,\"angle\":19.2592525},{\"distance\":499.444153,\"angle\":15.7421026},{\"distance\":562.8549,\"angle\":18.9881687},{\"distance\":407.055847,\"angle\":13.5616875},{\"distance\":390.60144,\"angle\":7.265606},{\"distance\":511.601532,\"angle\":3.08616471},{\"distance\":542.6274,\"angle\":9.236292},{\"distance\":433.333344,\"angle\":9.463006},{\"distance\":400.3471,\"angle\":14.315136},{\"distance\":482.8302,\"angle\":2.72182},{\"distance\":609.70166,\"angle\":9.545549},{\"distance\":498.12146,\"angle\":9.950068},{\"distance\":195.256241,\"angle\":5.103192},{\"distance\":225.154282,\"angle\":3.10400128},{\"distance\":287.7113,\"angle\":0.688418269},{\"distance\":388.4621,\"angle\":8.729155},{\"distance\":349.0066,\"angle\":9.544396},{\"distance\":100.346626,\"angle\":3.243772},{\"distance\":294.627869,\"angle\":2.515673},{\"distance\":301.961243,\"angle\":7.70553446},{\"distance\":566.6668,\"angle\":18.0912666},{\"distance\":613.3357,\"angle\":24.3124924},{\"distance\":378.777374,\"angle\":14.5138674},{\"distance\":125.000046,\"angle\":2.27081323},{\"distance\":242.9564,\"angle\":5.193276},{\"distance\":466.220062,\"angle\":3.11237836},{\"distance\":493.429016,\"angle\":4.63873863},{\"distance\":669.369568,\"angle\":21.48883},{\"distance\":311.136,\"angle\":12.4158583},{\"distance\":171.796051,\"angle\":7.840097},{\"distance\":33.333374,\"angle\":0.8166127}],\"sampleRate\":10}";
- void Start()
- {
- gestureManager.isRecording = true;
- gestureManager.ImportFromJson(gestureImport);
- GestureManager anotherGesture = new GestureManager();
- anotherGesture.ImportFromJson(gestureImport);
- float result = gestureManager.CompareGesture(anotherGesture);
- Debug.Log("gesture compare result:" + result.ToString());
- }
- // Update is called once per frame
- void Update()
- {
- //Vector2 mousePos = Pointer.current.position.ReadValue();
- //Debug.Log("Mouse poistion at: " + mousePos);
- //gestureManager.Record();
- }
- // 检测鼠标点击位置并打印出来
- public void GestureAction(InputAction.CallbackContext context)
- {
-
- Debug.Log(context.control.device);
- //Vector2 mousePos = Pointer.current.position.ReadValue();
- if (context.phase == InputActionPhase.Started)
- {
- //Debug.Log("Gesture action start!");
- //gestureManager.ResetGesture();
- //gestureManager.Record(mousePos);
- //Debug.Log("Mouse start poistion at: " + mousePos);
- //mouseIsHolding = true;
- gestureManager.isRecording = true;
- }
- if (context.phase == InputActionPhase.Canceled)
- {
- string logs = gestureManager.ExportToJson();
- Debug.Log("gesture logs:" + logs);
- mouseIsHolding= false;
- }
- //else if (mouseIsHolding)
- //{
- // Debug.Log("gesture add new point offset.");
- // Debug.Log("Mouse record poistion at: " + mousePos);
- // gestureManager.Record(mousePos);
- //}
- }
- }
|