Jump to content
UnitySpain

Deaymon

Registrados
  • Content Count

    19
  • Joined

  • Last visited

  • Days Won

    1

Deaymon last won the day on November 3

Deaymon had the most liked content!

Community Reputation

4 Neutral

About Deaymon

  • Rank
    Iniciado

Profile Information

  • Especialidad
    Coder

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Pues no sabía que era tan sencillo aplicar ese tipo de efectos visuales a la cámara. :0 Tendré que probar a trastear con esos efectos. Gracias por la aportación.
  2. Perdón por salirme del tema pero, ¿la línea "transform.up = direction" de verdad funciona? xD ¿La nave sigue el mouse con ese método? Suena como una alternativa bastante peculiar. Volviendo al tema, para hacer que la bala se mueva en una cierta dirección, lo único que te faltaría sería añadir al prefab de la bala el componente Rigidbody (o Rigidbody2D si usas Physics2D) y un script a la bala tipo: // Aquí asignas el Rigidbody2D del propio prefab public Rigidbody2D rb; public float velocidadDisparo; private void Awake() { rb.velocity = transform.up * velocidadDisparo // a lo mejor en lugar de transform.up tiene que ser transform.forward o transform.right dependiendo de cómo quieras orientar el objeto } La bala se moverá constantemente con la velocidad y dirección que le asignes hasta que choque con algo o se le aplique alguna fuerza. Otra alternativa sería ponerle un Update() que haga que se mueva a cada frame en la dirección que veas, pero no estoy seguro de cómo afectará eso a las colisiones.
  3. ¡Quepintazaquepintazaquepintazaquepintaza! Me voy de cabeza a seguiros en Twitter
  4. ¡Genial! ¡Gracias por el aporte! Este se va de cabeza a mi librería de assets por si alguna vez hago un juego 3D
  5. Parece que no puedo descargarlo en mi dispositivo porque no es compatible. Qué pena. :/
  6. Impaciente aquí, jaja. Voy a descargar y probarlo. Luego leo el resto y comento.
  7. Deaymon

    Jetpack 2019

    Está difícil, sí. Buen desafío. No sé yo si me convence esa física como que el personaje siempre está sobre hielo (no sé si me explico), que hace que cueste controlar los saltos. Sobre todo porque algunos saltos son precisos y he tenido que reiniciar bastantes veces por un solo fallo. El único problema que me he encontrado es que pulsar ESC para reiniciar el nivel no funciona si el personaje tiene invencibilidad. Me ha gustado bastante y la distorsión de los efectos de sonido está graciosa. ¿Has pensado en subirlo a itch.io?
  8. La respuesta dependería de la visión que tengas del proyecto y de cómo de complejo lo quieras hacer, por supuesto. Pero así de pronto y sin más detalles, te respondería el top-down sin dudarlo. Te ahorras la parte de físicas de un plataformas, que puede tener su propio conjunto de problemas con los que lidiar. Claro que si te consigues unos assets con código para juegos de plataformas ya listo, igual te ahorras ir por esos derroteros. En resumen: desde mi experiencia, que uses motor de física o no es el factor decisivo en la dificultad de programar un juego de esos 2 tipos.
  9. Deaymon

    Catlikecoding

    Ostras, sí, yo la re-recomiendo. La mayoría de cosas que he aprendido de Unity3D han sido de ahí. Me encanta la forma que tiene de explicar.
  10. ¿Cómo instancias la bala? Porque podrías usar el constructor de la clase BulletManager en lugar del Awake() para iniciar el movimiento de la bala. Así, pasas como parámetro la referencia al PlayerController y te ahorras usar el FindGameObjectWithTag().
  11. Nota sobre esto: speedX cambia la gravedad de TODO, no solo la "velocidad" de la pelota, así que creo que deberías de dejar ese factor como un valor constante, ya sea 9.8f, que es el valor por defecto de la gravedad, o bien cambiarlo a otro valor que te dé mejor resultado (a no ser que quieras cambiar la fuerza de la gravedad a mitad de juego, en cuyo caso, no lo hagas constante, claro). En cualquier caso, si hasta ahora te ha funcionado decentemente ese enfoque, lo que haría yo sería const float GRAVEDAD = 9.8f; private void FixedUpdate() { // Convertimos Input.acceleration.x del rango "-1 ~ 1" a "0 ~ π" radianes para simplificar cálculos float angulo = (Input.acceleration.x + 1f) * Mathf.PI * 0.5f; // Aplicamos trigonometría para "rotar" la gravedad Physics2D.gravity = new Vector2( -Mathf.Cos(angulo), Mathf.Sin(angulo) ) * GRAVEDAD; } EDIT: Sobre cambiar la fuerza de la gravedad a mitad de juego, puedes usar Rigidbody2D.gravityScale para cambiar cuánto afecta la gravedad a ese Rigidbody en particular. EDIT2: ¡Mathf.Sin(angulo) hará que la gravedad vaya hacia arriba! Ponle un '-' delante para invertirlo (xD Socorro, qué fallo más básico)
  12. Me he encontrado con este botón y quería saber qué hace exactamente. ¿Marca la respuesta como la mejor sólo a mis ojos o para todo el que vea el hilo? Me resulta extraño que yo, como usuario no administrador, sea capaz de marcar una mejor respuesta de un hilo que no he creado.
  13. La inclinación casi nunca será cero en el dispositivo, siempre oscila en cantidades diminutas. ¿Tal vez lo que buscas es que cuando Input.acceleration.x sea muy pequeño y esté entre -0.1f y 0.1f (las cantidades son un ejemplo), ignore esas pequeñas cantidades y haga como que Input.acceleration.x sea igual a 0.0f? Aunque si la pelota se mueve más rápido que una simple inclinación diminuta, podría ser algo que me pasó a mí hasta que descubrí que los ejes del acelerómetro cambian con el modo de orientación de la pantalla (mira los comentarios del ejemplo). Vamos, que Input.acceleration no funciona igual si el dispositivo está con la pantalla en "apaisado" o "retrato". A lo mejor Input.acceleration.x no es el eje que necesitas y te está registrando la inclinación adelante/atrás en lugar de la de izquierda/derecha (por lo de que la gente tiende a sujetar los dispositivos "recostados" sobre la mano, nunca rectos). ¿Has probado a usar otros ejes del Input.acceleration? Creo que es demasiado complicado para lo que quieres hacer, pero poder, se puede hacer. Como idea alternativa: en lugar de mover la pelota con el acelerómetro, podrías cambiar Physics.gravity en FixedUpdate() y que eso afecte a todos los Rigidbody del juego. Da un resultado diferente a lo que describes, pero quizá te resulte más cómodo. ¯\_(ツ)_/¯ Si necesitas ayuda con el código de cualquiera de estos enfoques, te echo una mano encantado (salvo la de restar fuerza). Pero especifica con cuál en concreto, que prefiero no tener que escribir tanto (ni llenar el hilo) para nada. xD JAJAJAJAJA Esta idea es tremenda, pero yo no la aconsejaría para nada. Aún así, SI QUISIERAS, se arreglaría, por ejemplo, haciendo que todos los objetos del nivel (pelota, plataformas, obstáculos y cía.) sean ahijados (child) de un mismo objeto vacío y rotar ese objeto padre (parent). Pero repito: mala idea. Cambiar el Transform de un Rigidbody = problemas de rendimiento.
  14. La solución de @lightbug es la que uso yo tal cual. A veces incluso uso un script aparte que se dedique exclusivamente a leer inputs (InputManager o algo así) y, luego, cualquier otro script que necesite saber acerca de esos inputs, use una referencia a este (InputManager). Eso sí, lo de usar OR al asignar los inputs para acumularlos entre cada FixedUpdate; excelente añadido que me voy a copiar a partir de ahora. Gracias por el aporte.
  15. Menuda pintaza tiene por el momento :0
×
×
  • Create New...