// Use this for initialization void Start() { player = FindObjectOfType <PlayerControllerFM>(); manager = FindObjectOfType <GesturesShapeManager> (); keywords = new Dictionary <string, System.Action> (); keywords.Add("go", onCast); keywords.Add("parar", onStop); keywords.Add("abajo", onDown); keywords.Add("arriba", onUp); keywords.Add("izquierda", onLeft); keywords.Add("dcerecha", onRight); keywordRecognizer = new KeywordRecognizer(keywords.Keys.ToArray()); keywordRecognizer.OnPhraseRecognized += onKeywordRecognize; keywordRecognizer.Start(); }
void Start() { controller = GetComponent <PlayerControllerFM> (); viewCamera = Camera.main; }
public void recognizeShape() { if (points.Count > 0) { List <float> posXs = new List <float> (); List <float> posYs = new List <float> (); foreach (var item in points) { posXs.Add(item.X); posYs.Add(item.Y); } float posXmin = posXs.Min(); float posXmax = posXs.Max(); float posYmin = posYs.Min(); float posYmax = posYs.Max(); float distanceX = posXmax - posXmin; float distanceY = posYmax - posYmin; float distanceCameraX = Camera.main.pixelWidth; float distanceCameraY = Camera.main.pixelHeight; float scaleX = distanceX / distanceCameraX; float scaleY = distanceY / distanceCameraY; recognized = true; if (scaleX >= minScaleFigure || scaleY >= minScaleFigure) { sound_handler.playRandomSound(); if (controller_player == null) { controller_player = FindObjectOfType <PlayerControllerFM> (); } Dictionary <String, int> array_names_spells; array_names_spells = new Dictionary <String, int> (); array_names_spells.Add("lineH", 0); array_names_spells.Add("lineV", 1); array_names_spells.Add("arrowUp", 2); array_names_spells.Add("arrowDown", 3); array_names_spells.Add("thunder", 4); array_names_spells.Add("yInverse", 5); array_names_spells.Add("chickenFoot", 6); array_names_spells.Add("X", 7); array_names_spells.Add("cross", 8); array_names_spells.Add("iluminati", 9); Gesture candidate = new Gesture(points.ToArray()); Result gestureResult = PointCloudRecognizer.Classify(candidate, trainingSet.ToArray()); message = gestureResult.GestureClass + " " + gestureResult.Score; controller_player.controlAnim.SetTrigger("attack"); int indexSpell; if (array_names_spells.TryGetValue(gestureResult.GestureClass, out indexSpell)) { effets.startCircleMagic(indexSpell); } if (onShapeRecognition != null) { onShapeRecognition(new Result(gestureResult.GestureClass, gestureResult.Score)); } } else { sound_handler.playBlock(); } if (recognized) { recognized = false; strokeId = -1; points.Clear(); foreach (LineRenderer lineRenderer in gestureLinesRenderer) { lineRenderer.SetVertexCount(0); Destroy(lineRenderer.gameObject); } gestureLinesRenderer.Clear(); } } }