Ejemplo n.º 1
0
    /// <summary>
    /// Nota: Si hay errores de Quaternion to Matrix comprobar que los parametros enviados son validos para el ejercicio indicado
    /// </summary>
    /// <param name="e"></param>
    /// <param name="param"></param>
    public void PrepareExercise(Exercise e, BehaviourParams param)
    {
        param.Angle = AngleFixer.FixAngle(param.Angle, e.Movement);
        if (param.Variations == null || param.Variations.Count == 0)
        {
            behaviour = AnimationBehaviour.GetBehaviour(e.Movement, e.Limb);
        }
        else
        {
            behaviour = AnimationBehaviour.GetCentralBehaviour(e.Movement, e.Limb);
        }

        if (behaviour == null)
        {
            Debug.LogError("No se encontró la máquina de estado. (Ejercicio = " + e.Movement + " "
                           + (int)e.Movement + ") (Limb = " + e.Limb + ")" +
                           "). Posiblemente se deba a una mala combinación de esos parámetros o el MonitoAnimatorController se bugeó");
            return;
        }

        behaviour.Prepare(param);
        behaviour.RepetitionEnd += behaviour_PrepareEnd;

        if (param.Variations == null || param.Variations.Count == 0)
        {
            CurrentExercise = e;
        }
        else
        {
            CurrentExercise = new Exercise(behaviour.randomAnimations[0], e.Limb);
        }
    }
Ejemplo n.º 2
0
    public void RunExerciseWeb(string s)
    {
        BehaviourParams p = JsonConvert.DeserializeObject <BehaviourParams>(s);

        behaviour = AnimationBehaviour.GetBehaviour(CurrentExercise.Movement, CurrentExercise.Limb);

        behaviour.Stop();
        p.Angle = AngleFixer.FixAngle(p.Angle, CurrentExercise.Movement);
        StartCoroutine(RunWebInSeconds(0.4f, p));
    }