Buenas tardes,
Tengo una duda de como usar el transform position en mi codigo.
Tengo un script que genera objetos en unas coordenadas (es un objeto vinculado, que lee el contenido del script):
script.coodinatesForA = new Vector3(-6.86f, -0.7f, 5f);
script.coodinatesForB.Add(new Vector3(6.86f, 2.05f, 5f));
script.coodinatesForB.Add(new Vector3(6.86f, -0.72f, 5f));
[/quote]
Este código que uso se carga en el void start para decirle a la escena donde se crearan estos gameobject.
He mirado muchos videos y "guias", pero cada persona lo explica de una forma, o usa unas variables que yo no puedo usar como referencia.
¿Alguien podría decirme como hago para por ejemplo con una corrutina o un temporizador que las coordenadas X, e Y, cambien en cada objeto?
Con una linea de ejemplo sobre ese código me valdia, porque he intentado poner:
script.coodinatesForB.Add(new Vector3 transform.position (-6.86f, 2.05f, 5f));
[/quote]
Pero visual studio me dice que tendría que ser transform.localposition lo pongo y me sigue saliendo el fallo.
Muchísimas gracias de antemano.
Cita de: RubenV date=1541961855¿Alguien podría decirme como hago para por ejemplo con una corrutina o un temporizador que las coordenadas X, e Y, cambien en cada objeto?
Una cosa, hablando en el lenguaje de Unity, "coordenadas"
No es lo mismo que "position",
position es bien claro pero coordenadas puede ser cualquier cosa definida por vos (de tu mini map por ej). Y aca viene la cosa, ¿qué es lo que querés hacer, cambiar un valor o varios de coordenadas o cambiar la posición de los objetos?.
Cambiar posición:
objX.transform.position = new Vector3(x, y, z);
cambiar la coordenada:
coord = new Vector3(x, y, z);
agregar una coordenada a una lista de VEctor3 (lo mismo que hiciste arriba):
script.coodinatesForB.Add(new Vector3(x, y, z));
(Si es que coordinatesForB fuera una List de Vector3)
Cita de: RubenV date=1541961855Con una linea de ejemplo sobre ese código me valdia, porque he intentado poner:
script.coodinatesForB.Add(new Vector3 transform.position (-6.86f, 2.05f, 5f));
Pero visual studio me dice que tendría que ser transform.localposition lo pongo y me sigue saliendo el fallo.
Es simple, eso no es C#, la lista admite un argumento (o varios) de Vector3's y dentro estás creando la estructura (new Vector3 ... bien) pero después llamando a la position del objeto, y despues metiendo los tres argumentos (q lapos del objeto no admite) , un lio.
La corrutina más pedorra, un simple timer
infinito:
IEnumarator Corru()
{
while(true)
{
// HAcer algo
// Esperar 1 seg
yield return new WaitForSeconds(1);
// en este punto se va por 1 segundo de Corru, vuelve a este punto cuando regresa
// osea, sigue después de while(true)
}
}
al yield lo podés crear fuera de la corrutina pero para no hacer más quilombo lo dejo dentro.
... y la llamás cuando quieras con:
StartCoroutine( Corru() );
Saludos