Jump to content
Sign in to follow this  
Megadok

ANSWERED Copiar movimiento de otro objeto con retraso.

Recommended Posts

Buenas tardes! Necesito que mi objeto "B" copie el movimiento de mi objeto "A" cuando éste se mueva, pero con retraso de una acción. Osea que B ocupe siempre la "anterior" posicion de A, pero no la nueva. Dicen las malas lenguas que es usando Queue pero he estado ensayando y no me ha dado buen resultado. Adjunto imagen.

Gracias!👽

ejemplo_copy.png

Share this post


Link to post
Share on other sites

Puedes solucionarlo de una manera poco profesional pero óptima:

En algún momento tu objeto A recibe una llamada de función para actualizar la posición, digamos que usas Input (KeyCode o touch), entonces, cada vez que hay una entrada, actualice un int que diga si puede o no el objeto B moverse. Ejemplo:

Int actualizarPosicion = 0 //Si es 0, no se puede actualizar B.

void Update(){

if(Input.GetTouch(0).phase = TouchPhase.Ended)

{

   If(actualizarPosicion == 1)

   {
      //Es la segunda entrada.

      //Actualiza la posición del objeto B.

      //Luego retorna 0 para la siguiente acción.

      actualizarPosicion = 0;

    }

    else {

       //Es la primera entrada, actualizar para que  en la próxima pueda moverse B.

       actualizarPosicion = 1;

    }

}

 

Puedes utilizar esta lógica e implementarla en tu proyecto.

Share this post


Link to post
Share on other sites
9 hours ago, francoe1 said:

¿Por qué no pedís directamente que realizamos el juego?

No todos empezamos/tenemos el mismo nivel francoe1, y mi pregunta no es "hazme el juego".👽
Por favor no respondas para esto, unityspain es un foro de conocimiento no de desconocimiento.😄

Share this post


Link to post
Share on other sites
56 minutes ago, Megadok said:

No todos empezamos/tenemos el mismo nivel francoe1, y mi pregunta no es "hazme el juego".👽
Por favor no respondas para esto, unityspain es un foro de conocimiento no de desconocimiento.😄

El mismo admin ni sabe de qué va el foro ...mal por vos francoe1, muy mal 🤣

16 hours ago, Megadok said:

Buenas tardes! Necesito que mi objeto "B" copie el movimiento de mi objeto "A" cuando éste se mueva, pero con retraso de una acción. Osea que B ocupe siempre la "anterior" posicion de A, pero no la nueva. Dicen las malas lenguas que es usando Queue pero he estado ensayando y no me ha dado buen resultado. Adjunto imagen.

Gracias!👽

A ver, otra vez este tipo de hilos, creo que por año contesto dos o tres de estos. Usar un foro se aprende (igual que conducir o tocar la guitarra), no se necesita tener "nivel" para saber preguntar o no. A mi me parece que nos estás mandando regla tras regla de lo que va a ser tu juego (un objeto A que haga X cosa con el objeto B, mismo patrón), y esperas que alguien te envíe el código en bandeja para todas y cada una de ellas. Una vez está bien, dos quizás, pero una tras otra ya denota falta de esfuerzo. Mi consejo es que te hagas un tiempo entre hilos (ponele unos 3 días, o una semana) entre duda y duda, así vas a tener tiempo de investigar bien a fondo, leer documentación, bibliografía, etc. Con suerte esas dudas van a ir desapareciendo, de lo contrario ¿de qué sirve todo esto? Y por favor tratá de que no suenen a demanda, no existe cosa más fea que leer un "Necesito esto... chau ... gracias".

Espero que se entienda, lo digo con la mejor de las intenciones.

 

Share this post


Link to post
Share on other sites
54 minutes ago, KevinLastra said:

@Megadok lo que buscas es algo fluido o tipo el juego de la serpiente de nokia?

Podría ser más parecido a la serpiente de nokia.

Just now, lightbug said:

El mismo admin ni sabe de qué va el foro ...mal por vos francoe1, muy mal 🤣

A ver, otra vez este tipo de hilos, creo que por año contesto dos o tres de estos. Usar un foro se aprende (igual que conducir o tocar la guitarra), no se necesita tener "nivel" para saber preguntar o no. A mi me parece que nos estás mandando regla tras regla de lo que va a ser tu juego (un objeto A que haga X cosa con el objeto B, mismo patrón), y esperas que alguien te envíe el código en bandeja para todas y cada una de ellas. Una vez está bien, dos quizás, pero una tras otra ya denota falta de esfuerzo. Mi consejo es que te hagas un tiempo entre hilos (ponele unos 3 días, o una semana) entre duda y duda, así vas a tener tiempo de investigar bien a fondo, leer documentación, bibliografía, etc. Con suerte esas dudas van a ir desapareciendo, de lo contrario ¿de qué sirve todo esto? Y por favor tratá de que no suenen a demanda, no existe cosa más fea que leer un "Necesito esto... chau ... gracias".

Espero que se entienda, lo digo con la mejor de las intenciones.

 

No veo ninguna buena intención en tu respuesta.
Podré preguntar cuando yo quiera, no tengo por qué esperar. Eres tu quien tiene la voluntad o no de responder.

Share this post


Link to post
Share on other sites

@francoe1 @lightbug yo no se de que va el foro en especifico, pero si puedo opinar, creo que si alguien tiene una duda depende de cada uno de ver si le responde o no, de un punto pedagógico es verdad que crear todo el juego mediante 35 post no es muy util para aprender pero eso no nos incumbe, puede que alguien que si se este instruyendo mediante la investigación encuentre en post e aprenda algo. @Megadok es cierto que tu post lo deberías escribir un poco mas amable de cara a pedir ayuda y es cierto que antes de hacer un post tomate un tiempo con papel y boli para pensar el problema. 

@Megadok Fuera de la pelea, si buscas algo tipo la serpiente de nokia lo unico que tienes q hacer es guardar la anterior position.


vector3 lastpos;

void updatepos(vector3 newpos)
{
	lastpos = transform.position;
	transform.position = newpos;
}

tendrias que tener este codigo en objA y objB, despues con un codigo que administre los objetos el cual llamaria a updatepos primero con A y despues con B, a A le darias la position nueva y a B le darias el lastpos de A, y asi sucesivamente con si tienes C,D,E.

entendiste?

Share this post


Link to post
Share on other sites
4 hours ago, Megadok said:

Podré preguntar cuando yo quiera, no tengo por qué esperar.

Sí, desde ya. Decime, ¿Donde está tu pregunta? Porque no la veo por ningun lado.

Asumo que (salvo que el admin y la reglas del foro expresen lo contrario) vos sos totalmente libre de crear X cantidad de hilos por día, y cada usuario es libre de contestar a tus preguntas con Y cantidad de post también. En lo personal me da exactamente igual, era solo un consejo.

Edited by lightbug

Share this post


Link to post
Share on other sites

@Megadok El foro se trata de una comunidad que intenta ayudar a "desarrollar juegos", las preguntas que estás planteando son de programación básica.

Hace más de 10 años que soy usuario de UnitySpain, y vi perfiles como los tuyos cientos de veces, la verdad es que no terminan bien, por que la comunidad se cansa de responder este tipo de cosas, esto no quiere decir que la comunidad no permita que crees estas preguntas simplemente es una forma de mantener un nivel y respeto en la comunidad.

@KevinLastra El foro se trata de desarrollar juegos, no de preguntas sobre programación básica. Si alguien tiene dudas del foro puede consultar esta sección.

Como dice @lightbug las preguntas necesitan más elaboración, preguntar cosas que técnicamente tienen la misma implementación demuestran la falta de interés por aprender. Por eso, hace un tiempo creamos un par de "reglas/tips" que deberían leer antes de crear una preguntar consultar esta sección.

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

Para completar, responderé tu pregunta inicial -

public class Part
{
    public Vector3 Position { get; set; }
}

public class Body
{
    public Part[] Parts { get; set; } = new Part[10];

    public Body ()
    {
        for (int i = 0; i < Parts.Length; i++)
            Parts[i] = new Part { Position = Vector3.Down * i };
    }

    public void Move (Vector3 dir)
    {
        Parts[0].Position += dir;
        for (int i = 1; i < Parts.Length; i++)
            Parts[i].Position = Parts[i - 1].Position;
    }
}

 

Share this post


Link to post
Share on other sites
1 hour ago, KevinLastra said:

@francoe1 porque no se crea una sub-seccion para preguntas mas basicas? tipo nivel bajo, medio y avanzado, asi se filtraria mejor las preguntas

 

Es algo planteado y puesto en práctica varias veces sin éxito, en todo caso propongo unirse al canal de Discord donde se pueden resolver problemas básicos de forma más rápida.

Share this post


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

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