/// <summary>
    /// Especifica la escala final que tendrá el objeto.
    /// </summary>
    /// <param name="indiceP">Indice en base 0 de la lista de animaciones del objeto. Si el indice no es menor al tamaño de la lista, se creará una nueva animación.</param>
    /// <param name="puntoEscalacionP">Escala final que tendrá el objeto.</param>
    /// <returns>La misma clase para hacer fluidez.</returns>
    public AnimarObjeto AgregarEscalacionPorPunto(int indiceP, Vector3 puntoEscalacionP)
    {
        if (indiceP < 0)
        {
            AnimarObjetoPseudoException.IndiceNegativo(indiceP);
            return(this);
        }

        Vector3 velocidad = puntoEscalacionP - this.transform.localScale;


        if (indiceP < animaciones.Count)
        {
            velocidad /= animaciones[indiceP].tiempo;
            animaciones[indiceP].vectorEscalacion = velocidad;
            animaciones[indiceP].ReiniciarValoresBase();
        }
        else
        {
            velocidad /= 5;
            animaciones.Add(new AnimarObjetoSettings(5, 0)
            {
                vectorEscalacion = velocidad
            });
        }
        return(this);
    }
    /// <summary>
    /// Especifica el tiempo y delay de una animación del objeto.
    /// </summary>
    /// <param name="indiceP">Indice en base 0 de la lista de animaciones del objeto. Si el indice no es menor al tamaño de la lista, se creará una nueva animación.</param>
    /// <param name="tiempoP">Tiempo que durará la animación.</param>
    /// <param name="delayP">Tiempo que durará el retraso para la animación.</param>
    /// <returns>La misma clase para hacer fluidez.</returns>
    public AnimarObjeto AgregarTiempo(int indiceP, float tiempoP, float delayP)
    {
        if (indiceP < 0)
        {
            AnimarObjetoPseudoException.IndiceNegativo(indiceP);
            return(this);
        }

        if (indiceP < animaciones.Count)
        {
            animaciones[indiceP].tiempo = tiempoP;
            animaciones[indiceP].delay  = delayP;
            animaciones[indiceP].ReiniciarValoresBase();
        }
        else
        {
            animaciones.Add(new AnimarObjetoSettings(tiempoP, delayP));
        }
        return(this);
    }
    /// <summary>
    /// Especifica la dirección en la que se rotará el objeto cada segundo.
    /// </summary>
    /// <param name="indiceP">Indice en base 0 de la lista de animaciones del objeto. Si el indice no es menor al tamaño de la lista, se creará una nueva animación.</param>
    /// <param name="direccionRotacionP">Dirección en la que se rotará el objeto cada segundo.</param>
    /// <returns>La misma clase para hacer fluidez.</returns>
    public AnimarObjeto AgregarRotacionPorDireccion(int indiceP, Vector3 direccionRotacionP)
    {
        if (indiceP < 0)
        {
            AnimarObjetoPseudoException.IndiceNegativo(indiceP);
            return(this);
        }

        if (indiceP < animaciones.Count)
        {
            animaciones[indiceP].vectorRotacion = direccionRotacionP;
            animaciones[indiceP].ReiniciarValoresBase();
        }
        else
        {
            animaciones.Add(new AnimarObjetoSettings(5, 0)
            {
                vectorRotacion = direccionRotacionP
            });
        }
        return(this);
    }