Jump to content
Sign in to follow this  
J4v1v1g2

Ayuda en script Csharp

Recommended Posts

Hola mi nombre es Javier y soy nuevo en el foro, no estoy muy seguro como puedo postear el problemilla que tengo en la sección del foro que corresponde por lo que lo posteare por aqui.

Necesito algún tutorial a ser posible o un ejemplo del codigo en Csharp para crear una barra de progreso en un juegecillo 2d que estoy preparando.Seria pasar proporcionalmente el recorrido del Gameobject_1 al gameobject2.

ejemplo.jpg

Share this post


Link to post
Share on other sites

Pues con una regla de tres

Haces un distance entre el transform del principio y del final ya sabes el 100% del recorrido del nivel ,luego en el update vas comprobando tambien con un distance entre el personaje y el final haciendo una regla de tres entre los dos distances ya sabes a que tanto por ciento se encuentra el jugador del recorrido, luego tambien haces un distance en entre dos game objects que tengas puestos en la barra progreso al principio y al final para saber tambien cual es su 100%, luego  en el update vas actualizando la posicion del gameobject que tengas en la barra de progreso ,sabiendo el tanto porciento que se ha movido el personaje por el nivel puedes aplicar ese tanto porciento al gameibject de la barra de progreso para que se mueva proporcinalmente


void Start(){

	levelDistance = Vector3.Distance(start.transform.position,finish.transform.position);
    levelBarDistance = Vector3.Distance(startBar.transform.position,finishBar.transform.position);
	barProgressStart = barProgressGameObject.transform.position.x;
}

void Update(){

	playerDistance = Vector3.Distance(player.transform.position,finish.transform.position);
	playerDistancePerCent = 100 * playerDistance / levelDistance;

	barProgress = levelBarDistance * playerDistancePerCent;

	barProgressGameObject.transform.position = new Vector3(barProgressStart + barProgess,barProgressGameObject.transform.position.y,barProgressGameObject.z);

}

Algo asi creo que deberia funcionaar, lo he escrito aqui sin probar, asi que habra faltas xD, todas las variables son float excepto la de barProgressGameObject,start,finish,startBar,finishBar y player, las tendras que asociar en el inspector con los gameibjects

Share this post


Link to post
Share on other sites

Bueno amigos ya tengo todas las variables que creo que necestio, solo me falta ponerle la posición al barProgressGameObject,las variables que prepare son.

 

Cita

 

-Distancia total pantalla

-% player completado 

----------------------------------------------

-Distancia total barprogress

-% marcador barra completado

 

 

el comando que creo que no consigo cerrar es el de:

 

barProgressGameObject.transform.position = new Vector3(barProgressStart + barProgess,barProgressGameObject.transform.position.y,barProgressGameObject.z);

 alguna ayudica mas :D

Share this post


Link to post
Share on other sites

Bueno pues depende de como sea la barra de progresso, yo te lo he puesto como si fuera asi para mover la figurilla solo.

d9a7c882b3ea949ff1396c9a7dab3790.jpg

lo que haria seria mover la figurilla de un extremo a otro,por eso solo lo aplicamos en .x, si lo tienes como la barra que se va llenando,pues la teoria es la misma,no te costaria mucho aplicarla.

Sabiendo la distancia del recorrido,calculamos el tanto por ciento que ha recorrido el jugador,sabiendo el principio y el fin de la barra sacamos su"distancia",no sabria como decirlo estoy espeso xD, multiplicamos esa distancia por el tanto por ciento y sabemos por donde esta.

Es decir si sabemos que la barra empieza en x=12 y que acaba en x=18 sabemos que mide 6 multiplicamos por el tanto por ciento recorrido del jugdor,que se yo 25%, nos daria 1,5 pues ya sabemos que le hemos de sumar 1.5 desde donde empieze. 12 + 1.5 = 13.5.

Si no lo consigues dinos como la tienes montada..

Edited by hammer

Share this post


Link to post
Share on other sites

Lo que me cabrea de los sliders/progress de Unity2D es que el control es un poco pastelete. Para personalizar un diseño de la barrita, pierdes demasiado tiempo , por las limitaciones...

Share this post


Link to post
Share on other sites

Bueno amigos ya casi lo tengo, solo queda el ultimo empujoncito ^^.

progresoplayerbar //   este seria el la distancia que habría que poner en el eje x del gameobject (playerbar).

playerbar // este el gameobject que hay que ir actualizando en el update.

 

como seria exactamente el comando del transform.position???

 

he hecho barias pruebas del transform y me hace cosas raras,ya no se si es que lo estoy poniendo mal el transform o hay otro problema que no he tenido en cuenta ^^

 

Share this post


Link to post
Share on other sites
Sign in to follow this  

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...