Jump to content
UnitySpain

Aceptamos donaciones vía Paypal.

UnitySpain.com es un servicio gratuito, pero mantener la Comunidad conlleva una serie de gastos.

Fondo Anual Unityspain: Donados 58,34€ de 150,00€

  • Servidor: Dominio.com y Hosting Web
  • Mantenimiento de los Foros
  • Contenido y Servicios Extras
  • Mantenimiento para Redes Sociales

Deaymon

Registrados
  • Content Count

    10
  • Joined

  • Last visited

Community Reputation

3 Neutral

About Deaymon

  • Rank
    Iniciado
  • Birthday 09/23/1994

Profile Information

  • Especialidad
    Coder
  1. ¿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().
  2. 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)
  3. 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.
  4. 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.
  5. 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.
  6. Menuda pintaza tiene por el momento :0
  7. Coincido con esto. Yo también tuve problemas con la versión más nueva de Unity al compilar para Android. Volver a Unity 2018 lo ha arreglado para mí.
×
×
  • Create New...