Jump to content

R3N3

Registrados
  • Content Count

    58
  • Joined

  • Last visited

Everything posted by R3N3

  1. gracias a ambos, usè esta fòrmula pero para las tres dimensiones y va de maravillas , ahora si controlo bien la comparaciòn de los puntos y cuando mi gameObject llega al lugar deseado. En cuanto lo del tiempo, para hacer el Vector3.Slerp, de la forma q viene en la documentaciòn no me sirve, va muy ràpido, probè la forma q me diste y tampoco, sigue muy ràpido. Con el Lerp tambièn me fue igual. La distancia no es tanta, 0.5f es lento pero me funciona, igual lo cambiè, sustituì el 0.5 por la distancia entre los puntos, ahora comienza muy ràpido y termina muuuuuuuuyyy lento. creo q si le hago un Clamp a ese valor puedo limitar el mìnimo para q no baje tanto, ya lo probarè. Lo del pelo del personaje sigue igual, tendrè q dejar calva a la pobre niña xq no veo otra soluciòn .
  2. Hola foro. Estoy tratando de calcular una distancia entre dos puntos, con el objetivo de mover un gameObject con vector3.slerp, desde su posiciòn actual hasta un punto y q al llegar a este ocurra una acciòn. La cosa es q ni vector3.Distance, ni restando la magnitud de las posiciones y comparàndolas, ni modo... si digo: <<ManagerPlayer.instancia_ManagerPlayer.PlayerActivo.transform.position = Vector3.Slerp (ManagerPlayer.instancia_ManagerPlayer.PlayerActivo.transform.position, ManagerPlayer.instancia_ManagerPlayer.posicionSalvada, 0.5f*Time.deltaTime);>> no se supone q mi objeto en cuestiòn llegue EXACTAMENTE al punto q quiero? y còmo comparar y saber el momento en q lo hace? por favor... y ya q estoy tengo otra duda, esta de "atachar" gameObjects. en la foto se puede ver como el pelo de mi personaje va a su bola, es hijo de la cabeza pero no es afectado por la rotaciòn de esta, solo se traslada y ya. Antes lo habìa hecho asì, es el caso de armas y manos, aunque eran personajes simples. Este es con un sistema de huesos + avanzado y con animaciòn tipo humanoide, no se si esto afecta. Doble gracias
  3. Hola comunidad. Estoy siguiendo paso a paso un tutorial desde la página oficial de Unity sobre la creación de un juego multiplayer. Aún así me aparece un error: En la página aparece q fue revisado con Unity 5.3, actualmenet uso la 2017.2.0f3. Al probar el juego hasta este paso (probando en conjunto el editor y un build, siguiendo los pasos del tutorial), no funciona como debe, solo se instancia un player cuando deberían aparecer os dos. Busqué un poco por google, pero mayormenet encontré respuestas en foros en inglés y hasta lo q lo gré entender no pillé nada . Si alguien le ha pasado o sabe una solución , help please!.
  4. resolvimos el problema con el depth de la cámara . .. al cambiarlos ya funciona .. el sprite es un pequeño efecto, para tapar el cambio del personaje de 2d a 3d , para que no se vea el cambio brusco , como un pestañeo como en el de phantom pain, junto con el cambio de cámara Perspective a Orthographic .. ahora queda perfecto .. gracias ! :)
  5. Hola amigos... tenemos un problema ... tenemos una cámara principal que renderiza algunas capas otra camara hija de ella , que renderiza un sprite (una animación) al darle play al juego la segunda camara no renderiza el sprite , a menos que manualmente le cambie la proyección de Orthographic a Perspective y luego de vuelta a Orthographic y entonces la renderiza.. .. se cambio por scrpit para k lo hiciera solo y aun no lo hace .. no puedo renderizarla con la primera camara, el sprite , pork esta cambia constantemente la proyección y aruinaria el efecto
  6. lightbug Igor muchas gracias funciona perfecto .. :)
  7. Hola amigos , quiero hacer un cambio en la cámara como hace el editor de unity cuando estas en vista 3d y pasas a vista 2d pulsando el botón 2d del editor ... pero de forma manual ...para que el cambio no sea de golpe en el juego ..
  8. Hola amigos , soy nuevo con lo del Physics.ComputePenetration . Como no encontré referencia muy clara sobre el tema y no entendí muy bien la documentación de Unity decidí probarlo por mí mismo. Me funcionó en parte, no entiendo q sucede, en las imgs adjuntas pueden ver, los cubos azules serían objetos de la escena y el blanco mi caja a mover. El cubo azul señalado con la palomita verde funciona perfectamente, detecta la superposición de objetos por todas las caras. En cambio los otros dos, clonados de este, no lo hacen igual, como pueden ver en las imágenes, si lo toco por un borde si lo detecta; pero si lo hago de forma completa no. No entiendo por qué no interactúan igual los objetos. Qué puede ser? Caja3d.cs
  9. Gracias por tu ayuda, interesante lo del Physics.ComputePenetration, he decidido volver empezar de cero para hacer todo de mejor forma y usar esto. Como no encontré referencia muy clara sobre el tema y la no entendí muy bien la documentación de Unity decidí probarlo por mí mismo. Me funcionó en parte, no entiendo q sucede, en las imgs adjuntas puedes ver, los cubos azules serían objetos de la escena y el blanco mi caja a mover. El cubo azul señalado con la palomita verde funciona perfectamente, detecta la superposición de objetos por todas las caras. En cambio los otros dos, clonados de este, no lo hacen igual, como puedes ver en las imágenes, si lo toco por un borde si lo detecta; pero si lo hago de forma completa no. No entiendo por qué no interactúan igual los objetos. Qué puede ser? Caja3d.cs
  10. Hola comunidad, tengo un problema que me viene jodiendo bastante hace un tiempo. Estoy creando un juego de puzzles en el que es necesario tener mecáninicas tan simples como mover una caja o subir en plataformas q se mueven. Lo de mover cajas lo tengo resuelto de la siguiente manera, el personaje entra en contacto con la caja, presiona el botón de acción y en ese momento hago la caja hija del player. De esta forma ya puedo arrastrarla, ahora, si empujo la caja contra una pared y sigo haciendo fuerza el player atraviesa la caja esta se mueve de su posición (un desastre), lo resolví de la siguiente forma: //si el personaje tiene la caja agarrada else{ float h = Input.GetAxis("Horizontal"); if(izqDeLaCaja){ //leo de la caja un ray q marca cuando choca a su izquierda if (h < 0) { //si choca y continúo empujando en esa dirección hace la fuerza = 0 h *= 0; } else { h*=1; } }else if(derDeLaCaja){ //igual q arriba pero para el lado derecho if (h > 0) { h *= 0; } else { h*=1; } } moveDirection2D = new Vector2(h, 0); moveDirection2D = transform.TransformDirection(moveDirection2D); moveDirection2D *= speed; moveDirection2D.y -= gravity * Time.deltaTime; controller.Move(moveDirection2D * Time.deltaTime); } Lo que quisiera saber es si hay una forma más óptima de hacer esto, porque cuando el jugador es en 3d la cosa se complica y queda u bloque de código un poco grande. En cuanto a lo del player sobre las plataformas, también lo resuelvo haciendo hijo al jugador de la plataforma que se mueve, pero la plataforma padre me afecta la escala del player al hacerlo su hijo, no se por qué puñetera razón:
  11. Hola a todos. Tengo un personaje el cual necesito que se mueva en base a la cámara (es decir que se vire de frente en la dirección que se pulse en el cursor), por ahora lo tengo hecho pero lo muevo usando el Transform.Translate, cuando este tiene un Character Controller. No he logrado moverlo haciendo uso del Character Controller, por lo menos cuando pulso el cursor de abajo no funciona. Si alguien lo ha hecho, o sabe como lograr este resultado, o conoce algún video bueno sobre el tema; por favor háganmelo llegar, gracias.
  12. Hola amigos tengo un problema, tengo un personaje con character controller , necesito mover cajas en el escenario (es un juego sencillo de celular de tipo puzzle) , por ahora lo hago de la siguiente manera , con un trigers stay al presionar un botón , hago a la caja hijo del personaje , por lo que puedo moverlo a cualquier lado , pero cuando ejerso fuerza contra una pared, la caja , el collider, entra un poco en el collider de la pared , y sale disparada la caja
  13. R3N3

    Rotacion Tag

    Perdón Perdón, Perdón a @TheBullet , @lightbug y a @Miguel_Angel Como hice el script sin editor no me di cuenta de lo que escribía mal, primero transform.position.rotation es una aberración, lo siento se me fue la musa. En segundo lugar me acabo de dar cuenta que estoy sumándole 90 grados al Quaternion directamente y esos no son los valores con los que trabaja el Quaternion. ahora voy a corregirlo y ver si me funciona. Gracias por su ayuda y disculpas por ponerle un código tan malo, me da vergüenza.
  14. Hola amigos, tengo una duda, haber si alguien me puede ayudar: Se supone que a la rotacion del objeto, en este caso = (0,0,0), se le modifique en Y sumando 90 grados. Deberia dar una nueva rotacion = (0,90,0) , Para luego hacer una interpolacion entre estas rotaciones. Por alguna misteriosa razon me suma 180 grados y no 90, que puede estar pasando? public Quaternion rotacionAcambiar; public Quaternion rotacionDeseada; public bool rotar; void Start(){ bool rotar = false; } void Update(){ if (rotar){ transform.rotation = Quaternion.Lerp(transform.position.rotation, rotacionDeseada.eulerAngles, 2*Time.deltaTime); } if(Input.getKeyDown(KeyCode.E)){ rotacionAcambiar = transform.position.rotation; rotacionDeseada = new Quaternion(rotacionAcambiar.x, rotacionAcambiar.y + 90, rotacionAcambiar.z, rotacionAcambiar.w); rotar = true; }
  15. Hola alguien en el foro sabe cómo rayos lidiar con las rotaciones en unity? Estoy haciendo un runner que avanza por un circuito, en este caso una ciudad. deseo que el jugador elija cuando doblar una calle, pero no se como rotar el personaje y quede en linea exacta con la calle elegida. Cuando comparo las rotaciones del playaer con un gameobject colocado para eso nada más, a veces funciona y otras no, ya que aunque parezacan iguales no lo son. EJ: 90 grados en Y y 270 grados en Y parecen iguales pero no lo son. Por favor cómo lo hacen? Gracias por la ayuda que me puedan brindar.
  16. A lo que me refiero es que no se como se crea ese mundo aleatorio en el que se juega, el personaje corre y corre y no termina el mundo. Como genero ese mundo, de forma tal que no queden huecos entre el tramo actual en el que se corre y el sigiuente al frente del jugador? En youtube no he encontrado ningun tutorial que explique el proceso de creacion en unity (escenarios, scripts, etc.) solo muestran el resultado final. Si puedes ayudarme con eso te lo agradeceria muchisimo.
  17. Hola unityspain. Necesito que si alguien ha creado un juego tipo subway surfer, o si sabe como hacerlo, me ayuden con un problema: en mi juego el personaje se mantiene en el lugar y es el escenario el que se mueve. Genero los segmentos cada cierto tiempo y se mueven a una velocidad determinada hacia el player. La cosa está en que cuando modifico la velocidad ya empiezan a quedar espacios entre los segmentos. Se me ocurren varias formas de intentar arreglar esto pero quisiera saber como es que lo hacen digamos, los que saben de verdad, no como yo un aficionado. Si hay algun video en youtube donde explican eso me pueden dejar el url, yo he buscado pero no he dado con alguno donde expliquen esto. Gracias.
  18. En la guia hay un ejemplo de leer los gestos en el telefono, quisiera lograr un control de juego tipo Subway surfer, pero por ahora los gestos hacia la izquierda del tel se me confunden como si fueran hacia abajo y lo mismo pasa con la derecha y arriba. Como puedo lograr en un script que se diferencien bien los gestos del dedo sobre la pantalla? Aqui esta el codigo que uso: if (Input.touchCount > 0) { var touch = Input.GetTouch(0); // Manejo de los movimientos del dedo basado en las fases del toque switch (touch.phase) { // Guardo la posicion inicial del toque. case TouchPhase.Began: startPos = touch.position; break; // Determina la direccion comparando la posicion actual con la inicial case TouchPhase.Moved: direction = touch.position - startPos; break; // Cuando termina el toque veo que direccion se eligio case TouchPhase.Ended: // si esta negativo en x fue hacia la izquierda if(direction.x < 0 ){ direccionIzq = true; // si esta positivo en x fue hacia la derecha }else if(direction.x > 0){ direccionDer = true; } break; //Llegada esta parte aunque mueva el dedo hacia arriba con correrlo solo un poco a la izquierda (por ejemplo) hace la transicion hacia la izquierda cuando no quiero que lo haga. } }
  19. R3N3

    player 2d

    Hola unityspain. Quisiera lograr un personaje que haga un doble salto, es decir desde el suelo puedo saltar una vez y en el aire puedeo hacerlo una vez más ó si caigo de una plataforma en el aire puedo usar esos dos saltos. Por ahora tengo una variable(limiteSalto) que limita el # de veces que puedo saltar y otra(contarSaltos) en la que cuento cada vez que se presiona el botón de salto. Entonces al llegar al límite no se puede saltar más, hasta que el personaje vuelva al suelo y reinicie la variable contarSaltos a 0. El problema está en que cuando estoy en el suelo y presiono el botón Jump una vez contarSaltos es igual a 1, no se reinicia porque no ha llegado al límite y desde el suelo puedes saltar entonces tres veces. Si paso la línea contarSaltos = 0 dentro del if(isGrounded), pues no me cuenta el primer salto porque la variable se mantiene en 0 y en el aire comienza el conteo. Aquí les dejo la parte del código de interés. La variable isGrounded es un boolean que obtengo con un Raycast, así logro algo parecido a la propiedad isGrounded del character controller. Gracias por cualquier ayuda que puedan ofrecer. codigo.txt
  20. Por favor gracias por responder mi post, pero podrias mandarme el link pues me sale asi: como ves no puedo acceder y tampoco ver la direccion
  21. Hola, segui un tutorial sobre creacion de objetos en tiempo real, pero solo creo lineas con sus collider, material y todo lo que le permite interactuar en el escenario. Pero lo que deseo es hacer por ejemplo un garabato o una curva y que interactue igual. Para mejorar la descripcion de lo que quiero, aqui les dejo el enlace a un juego android muy bueno https://play.google.com/store/apps/details?id=com.orbital.brainiton Ese es el resultado que quiero obtener, por favor si alguien sabe hacerlo o sabe de algun tuto, me puede responder, o dejar in link, lo que sea. Gracias.
  22. Hola Unityspain. Necesito ayuda con el movimiento de un personaje 2d estilo meat boy, es decir, esa velocidad frenética, saltar apoyándose en las paredes, control difícil del personaje. Más o menos lo he logrado, pero no lo termino de perfeccionar. Lo que tengo ahora es un personaje muy muy muy muy difícil de controlar y hasta tedioso. El salto en la pared está bastante bien, pero si salto solo en el suelo, el personaje demora una eternidad en llegar al punto más alto del salto, y en consecuencia si salto corriendo el personaje prácticamente vuela, algo que no va con el diseño de los niveles. Adjunto el script y una foto del escenario en que lo estoy probando. Por favor ayúdenme, si desean probarlo solo coloquen el script a un cubo con un rigidbody y restringiendo todas las rotaciones. Gracias \_(..)_/ PixelControl.cs using UnityEngine; using System.Collections; public class PixelControl : MonoBehaviour { public bool isGrounded; public bool isWall; public bool habilitado = true; public float MaxVelocidad = 25; public float velocidadPorDefecto; public float velocidadPorAire; //public float Aceleration = 30; public float velocidadSalto = 8; public float velocidadSaltoPared = 1; Rigidbody rb; // Use this for initialization void Start () { Physics.gravity = new Vector3(, -15F, ); velocidadPorAire = MaxVelocidad - 5; velocidadPorDefecto = MaxVelocidad; rb = gameObject.GetComponent<Rigidbody>(); } void FixedUpdate(){ print (rb.velocity.x); if (rb.velocity.x >= MaxVelocidad) { rb.velocity = new Vector3 (MaxVelocidad, rb.velocity.y, ); } else if (rb.velocity.x <= -MaxVelocidad) { rb.velocity = new Vector3(-MaxVelocidad,rb.velocity.y,); } } // Update is called once per frame void Update () { menorVelocidadEnElAire (); checkIsGrounded (); checkIsWall (); checkHbilitarControles (); Move (); //print (); } public void Move(){ if(habilitado){ float horizontal = Input.GetAxis ("Horizontal"); if (horizontal < -0.1f) { /*if (rb.velocity.x > - MaxVelocidad) { rb.AddForce (new Vector3 (-Aceleration, 0, 0)); } else { rb.AddForce (new Vector3 (-MaxVelocidad,rb.velocity.y,0)); }*/ rb.AddForce(new Vector3(-MaxVelocidad,rb.velocity.y,)/*,ForceMode.Acceleration*/); } else if(horizontal > 0.1f){ /*if (rb.velocity.x < MaxVelocidad) { rb.AddForce (new Vector3 (Aceleration, 0, 0)); } else { rb.AddForce (new Vector3 (MaxVelocidad,rb.velocity.y,0)); }*/ rb.AddForce(new Vector3(MaxVelocidad,rb.velocity.y,)/*,ForceMode.Acceleration*/); } } //////salto//// float horizontal2 = Input.GetAxis ("Horizontal"); if (Input.GetButtonDown("Jump") && isGrounded /*&& !isWall*/){ rb.velocity = new Vector3(rb.velocity.x, velocidadSalto, ); //Salto desde pared// }else if(Input.GetButtonDown("Jump") && isWall && horizontal2 != ){ rb.velocity = new Vector3 (velocidadSalto * (horizontal2*(-velocidadSaltoPared)), velocidadSalto, ); } } //Chequea que el player este en el suelo// public void checkIsGrounded() { Vector3 down = transform.TransformDirection(Vector3.down); if (Physics.Raycast (transform.position, down, transform.localScale.y/2 + 0.01f)) { isGrounded = true; } else { isGrounded = false; } } //Quita velocidad si esta en el aire// public void menorVelocidadEnElAire(){ if (!isGrounded) { MaxVelocidad = velocidadPorAire; } else { MaxVelocidad = velocidadPorDefecto; } } //no permite que el player se quede pegado a una pared si presiona el cursor// public void checkHbilitarControles(){ if(!isGrounded && isWall){ habilitado = false; }else if((!isGrounded && !isWall) || isGrounded){ habilitado = true; } } //Chequea que el personaje choque con una pared// public void checkIsWall() { Vector3 der = transform.TransformDirection(Vector3.right); Vector3 izq = transform.TransformDirection(Vector3.left); if (Physics.Raycast (transform.position, der, transform.localScale.x/2 + 0.01f) || Physics.Raycast (transform.position, izq, transform.localScale.x/2 + 0.01f)) { isWall = true; } else { isWall = false; } } }
  23. Hola a todos: Necesito, si alguien sabe, me digan como descargar modelos, escropts, etc. del asset store. Un a forma que no sea mediante unity, ya que al vivier en Cuba no tengo acceso a esta pagina. Desde un navegador logro entrar con un proxy, pero al motor de juego no puedo instalarle un proxy, siempre me dice que estoy desconectado, por favor ayuda con eso.
  24. esto es basico revisa la doc. buscando input
  25. Tengo un problema al importar la libreria vuforia, el cual aqui les pongo en una foto. Aclaro trabajo en unity 5.2.0 y un sistema de 64 bits. Mis preguntas son : En base a la foto que adjunto, ¿por qué sucede este error, si he seguido los pasos de un tutorial básico? descargué la lib vuforia del portal oficial. Hasta cuál versión de unity trabaja esta lib? PD: Adjunto también la librería que descargué (lo siento creo que no subió bien la lib, pero al menos pueden ver la versión)
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...