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_); }
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_); }