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 (https://docs.unity3d.com/ScriptReference/Rigidbody-velocity.html)