Ejemplo n.º 1
0
    public void agregar_datos_predefinidos(GameObject p_)
    {
        point       point_ = new point();
        scr_puntero scr_p  = p_.GetComponent <scr_puntero> ();

        scr_p.borrar = true;
        if (points.Count == 0)
        {
            //es el inicio
            //son las el point objeto
            scr_p.p_der  = 0;
            scr_p.p_izq  = 1;
            scr_p.p_yo   = 0;
            scr_p.t_der  = 0f;
            scr_p.t_izq  = pista.clip.length;
            scr_p.t_yo   = 0f;
            scr_p.inicio = true;
            //son las del point clase
            point_.p_der = 0;
            point_.p_izq = 1;
            point_.p_yo  = 0;
            point_.t_der = 0f;
            point_.t_izq = pista.clip.length;
            point_.t_yo  = 0f;
        }
        else if (points.Count == 1)
        {
            //es el final
            //son las del point objeto
            scr_p.p_der = 0;
            scr_p.p_izq = 1;
            scr_p.p_yo  = 1;
            scr_p.t_der = 0f;
            scr_p.t_izq = pista.clip.length;
            scr_p.t_yo  = pista.clip.length;
            scr_p.final = true;
            //son las del point clase
            point_.p_der = 0;
            point_.p_izq = 1;
            point_.p_yo  = 1;
            point_.t_der = 0f;
            point_.t_izq = pista.clip.length;
            point_.t_yo  = pista.clip.length;
            //le doy su posicion
            Vector3 pos = p_.GetComponent <Transform> ().position;
            p_.GetComponent <Transform> ().position = new Vector3(pista.clip.length, pos.y, pos.z);
        }

        scr_p.dura   = 0.2f;
        scr_p.speed  = 1f;
        point_.dura  = 0.2f;
        point_.speed = 1f;

        obj_points.Add(p_);
        points.Add(point_);
    }
Ejemplo n.º 2
0
    public void poner_puntero(bool predefinido = false, float time_ = 0f)
    {
        //creara un puntero en la posicion que tiene la barra de audio
        GameObject p_ = Instantiate(puntero, new Vector3(0, 0.5f, 0f), Quaternion.identity, caja_punteros.GetComponent <Transform> ());
        //obtengo los punteros
        point       point_ = new point();
        scr_puntero scr_p  = p_.GetComponent <scr_puntero> ();

        //algunos datos generales
        scr_p.p_yo  = points.Count;
        point_.p_yo = points.Count;
        print("a");
        //si es predefinido
        if (predefinido)
        {
            //agregar_datos_predefinidos (p_);
            scr_p.borrar = true;
            if (points.Count == 0)
            {
                //es el inicio
                //son las el point objeto
                scr_p.p_der = 1;
                scr_p.p_izq = 0;
                //scr_p.p_yo = 0;
                scr_p.t_der  = pista.clip.length;
                scr_p.t_izq  = 0f;
                scr_p.t_yo   = 0f;
                scr_p.inicio = true;

                //son las del point clase
                point_.p_der = 1;
                point_.p_izq = 0;
                //point_.p_yo = 0;
                point_.t_der = pista.clip.length;
                point_.t_izq = 0f;
                point_.t_yo  = 0f;
            }
            else if (points.Count == 1)
            {
                //es el final
                //son las del point objeto
                scr_p.p_der = 1;
                scr_p.p_izq = 0;
                //scr_p.p_yo = 1;
                scr_p.t_der = pista.clip.length;
                scr_p.t_izq = 0f;
                scr_p.t_yo  = pista.clip.length;
                scr_p.final = true;
                //son las del point clase
                point_.p_der = 1;
                point_.p_izq = 0;
                //point_.p_yo = 1;
                point_.t_der = pista.clip.length;
                point_.t_izq = 0f;
                point_.t_yo  = pista.clip.length;
            }
        }
        else
        {
            print("b");
            //le doy su posicion en x
            Vector3 pos = p_.GetComponent <Transform> ().position;
            //colocamos los datos generales
            if (time_ == 0f)
            {
                scr_p.t_yo  = pista.time;
                point_.t_yo = pista.time;
                p_.GetComponent <Transform> ().position = new Vector3(0f, pos.y, pos.z);
            }
            else
            {
                scr_p.t_yo  = time_;
                point_.t_yo = time_;
                p_.GetComponent <Transform> ().position = new Vector3(point_.t_yo, pos.y, pos.z);
            }

            //buscamos los punteros izq y der
            int c_a = 0, c_b = 1, p_izq_ = 0, p_der_ = 1;
            //los punteros no estan ordenados
            //porlo cual debemos iniciar el inicio por el 0 y el final por el 1
            //e ir buscando entre sus nodos hasta llegar al que queremos
            for (int i = 0; i < points.Count; i++)
            {
                //tengo que verificar el ultimo primero
                //revisamos que nuestro time sea menos que los de los extremos
                //print (c_b + "//" + points[c_b].t_yo + "!!" + scr_p.t_yo + "");
                if (points[c_b].t_yo > scr_p.t_yo)
                {
                    //si es mayor puede ser nuestro p_der
                    p_der_       = c_b;
                    scr_p.p_der  = p_der_;
                    point_.p_der = p_der_;
                    c_b          = points[c_b].p_izq;
                    print("d");
                }
                else
                {
                    //sino es correcto entonces nos hemos pasado de reversa
                    //debemos cambiar los valores de el nodo der
                    points[p_der_].p_izq = scr_p.p_yo;
                    obj_points[p_der_].GetComponent <scr_puntero> ().p_izq = scr_p.p_yo;
                    print("e");
                    break;
                }
            }
            for (int i = 0; i < points.Count; i++)
            {
                //tengo que verificar el ultimo primero
                //revisamos que nustro time sea menos que los de los extremos
                if (points[c_a].t_yo < scr_p.t_yo)
                {
                    p_izq_       = c_a;
                    scr_p.p_izq  = p_izq_;
                    point_.p_izq = p_izq_;
                    c_a          = points[c_a].p_der;
                    print("f");
                }
                else
                {
                    //sino nos hemos pasado
                    points[p_izq_].p_der = scr_p.p_yo;
                    obj_points[p_izq_].GetComponent <scr_puntero> ().p_der = scr_p.p_yo;
                    print("g");
                    break;
                }
            }
            print("c");
        }

        //print (scr_p.p_izq.ToString () + "/" + scr_p.p_der.ToString ());
        //creo lo que que guardare despues
        //le coloco como editor este script
        //le doy sus primeros datos
        scr_p.editor = this;
        scr_p.speed  = 1f;
        point_.speed = 1f;
        point_.dura  = dur_barra;
        //p_.name = "Point" + scr_p.p_yo.ToString ();
        //n_editable.points.Add (point_);
        obj_points.Add(p_);
        points.Add(point_);
    }