Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Ayuda Script en C#

Iniciado por Cesar Acosta, Noviembre 23, 2016, 04:50:03 PM

Tema anterior - Siguiente tema
1-Como puedo instanciar un objeto y hacerlo hijo de otro 
 
2-Como puedo hacer un velocímetro? 

para la primera es: hijo.transform.SetParent (padre.transform);
 
para la segunda: tendras que aprender por tu cuenta ya que influye el sistema con el que mueves el coche, la relacion de tamaño de tus objetos con la de unity, etc... o puedes usar san google y tener un script de velocimetro que no podras implantar a tu proyecto.

····>Desarrollando un videojuegos online-arcade para Android.


····>Programador en:C,C#,VB.net,PHP,HTML5,SQL,JS,Ruby.


····>Trabajando en: Desarrollo de paginas web y bushistudios.


                    ๑۩۞۩๑_(▀▄)KINGTRASE(▄▀)_๑۩۞۩๑ 



Noviembre 23, 2016, 08:36:28 PM #2 Ultima modificación: Noviembre 23, 2016, 08:48:46 PM por lightbug
Para 1 No quiero sonar cortante pero si buscas en google tenes 7000 resultados, y seguro para el 2020 vas a tener 14000 resultados, porque siguen y siguen preguntado lo mismo. Una pequeña busqueda te da lo que queres y no llenamos los servidores con las mismas preguntas una y otra vez (distinto es la pregunta 2 que es valida)
 
 
 
Para 2 tenes que relacionar rigidbody velocity con algun valor del velocimetro, puede ser el angulo de la aguja, puede ser el nivel y/o color, si es de esos lineales.
 
Aca te dejo uno de tipo lineal, el metodo que usas depende, yo tenia algo parecido (era para abrir puerta XD) en donde la textura cargadora se hacia ancha, como los colores en horizontal no variaban parecia que se cargaba. Podes tambien hacerlo de otras formas aca hay que ser creativo mas que nada.
 
 
 
velocimetro.cs (va en el objeto con rigidbody)
 


[RequireComponent ( typeof(Rigidbody) )]
public class velocimetro : MonoBehaviour {

public float maximaVelocidad = 100;
public float maximoAncho = 500;
public Texture TexturaLinealFondo;
public Texture TexturaLineal;
private float velocidad;
private Rect rectFondo;
private Rect rectVelocidad;
void Start()
{
   rectFondo = new Rect( 20 , 20 , 500 , 100 );
 
}
void Update()
{      
   float velocidad = GetComponent<Rigidbody> ().velocity.magnitude;
   float relacionVelocidadAncho = (velocidad / maximaVelocidad) * maximoAncho;
   rectVelocidad = new Rect( 20 , 20 , relacionVelocidadAncho , 100 );
}
void OnGUI()
{
   //Si no seleccionas las dos no se dibuja nada
   if(!TexturaLineal || !TexturaLinealFondo)
      return;
   GUI.DrawTexture (rectFondo, TexturaLinealFondo);
   GUI.DrawTexture (rectVelocidad, TexturaLineal);
   GUI.Label ( new Rect(10,10,50,50), GetComponent<Rigidbody>().velocity.magnitude.ToString());
}
}

 
El de tipo Aguja en formato GUI es parecido, (no se me ocurre si lo podes hacer en OnGUI). Basicamente creas un sprite nuevo con la imagen de la aguja, funciona igual que el anterior, lo unico que en vez de calcular la velocidad y asociarla a un valor de ancho (float) lo haces con un valor de angulo. Tenes que tener en cuenta el min y max angulo que queres y en update los determinas.
 
Saludos

Yo lo que necesito es que él velocímetro este en una variable de tipo numérica 
 
No es para un auto 
 
Lo necesito para otra cosa pero tengo que saber con que velocidad va un objeto 


Como puedo hacer un velocímetro?  

 
Si cualquier terricola lee eso que te parece que interpretaria?
 
Un velocimetro es un instrumento que mide la velocidad. No podes meter un velocimetro en una variable. Vos lo que queres es la velocidad, mucho mas facil todavia ya que para cada rigidbody tenes una variable propia de velocidad. La tenes en Rigidbody.velocity:
 
Velocity

Etiquetas: