// 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();
    }
示例#2
0
 void Start()
 {
     controller = GetComponent <PlayerControllerFM> ();
     viewCamera = Camera.main;
 }
示例#3
0
    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();
            }
        }
    }