Un poco de documentación sobre el Impulse : https://docs.unity3d.com/ScriptReference/ForceMode.Impulse.html
El controlador del juego
Archivos del curso
¡Bienvenido a los cursos autorizados de Unity!
Bienvenida al curso y requisitos para utilizar el HTC Vive
Inicializando nuestro proyecto y configurando nuestro PlayerSettings para trabajar con VR
Utilizando nuestros controles de HTC Vive
Creando nuestro mundo 3D en Unity
Comenzando a crear nuestro escenario 3D con los Unity Standard Assets
Preparando el terreno de nuestro escenario
Texturizando el terreno de juego
Agregando detalles utilizando vegetación
Agregando cesped y viento a nuestro nivel
Terminando nuestro entorno 3D, agregando un skybox al proyecto
Utilizando la unity asset store para obtener nuestra arma y escudo
El realismo del VR: Programando a nuestro personaje
Asignando un control de realidad virtual a nuestras armas
Input Manager de nuestros controles de VR
Accediendo a los botones de nuestro control
Preparando nuestro proyectil
Utilizar los sensores de los Vive Controllers para lanzar proyectiles
Corrigiendo los bugs de nuestra arma
Agregando Colliders y Rigid Bodies a nuestro playerController y armas
Utilizando Getters y Setters para manejar nuestas barras de vida
El realismo del VR: Creación de HUD (Heads Up Display) y generando enemigos
HUD's en VR
Terminando nuestros HUDs de mana y vida
Creando nuestro script de daño
Asignando nuestros huds a los valores de vida y de mana de nuestro personaje
Agregando enemigos
Añadiendo colliders a nuestros enemigos
Añadiendo animaciones de muerte a nuestros dragones
Spawn de enemigos: Generando enemigos sistemáticamente
El realismo del VR: Programando la IA de nuestro juego
Programando una IA básica: Waypoints
Programando a nuestro enemigo para que pueda seguir Waypoints
Terminando la lógica de waypoints
Puliendo la lógica de nuestro enemigo
Añadiendo diversos puntos de 'Spawn' para enemigos y cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Juan Gabriel Gomila
Para calcular la fuerza (o velocidad) a la que debemos lanzar un proyectil, necesitamos conocer primero la diferencia de posición en que se encuentra el control derecho en dos momentos.
Para ello hemos definido antes, al final del método Update()
, en el script de weapons, dos variables particulares:
lastPositionRight
, a la que le hemos asignado el valor de rightHand.transform.position
lastPositionLeft
, a la que le hemos asignado el valor de leftHand.transform.position
.Nótese que todos los objetos tienen la propiedad transform
, que nos dan acceso a position
, scale
y rotation
, entre otras.
La fuerza con la que se hará el lanzamiento del proyectil debe ser definida como una variable de tipo Vector3
, ya que es este el tipo de valor que podremos utilizar luego para indicar el impulso con el que será disparada la magia.
Debemos tener en cuenta que hemos definido antes la magia de fuego como un objeto hijo del arma alternativa, con una componente Rigid Body
con _constrains en x, y
y z
que la mantendrÃan vinculada a la posición de esta, por lo que al salir disparada, debemos desvincularla para que sea entonces un objeto independiente y su desplazamiento sea autónomo. Esto lo hacemos asignando a la propiedad <GameObject>.transform.parent
el valor de null y al <GameObject>.GetComponent<Rigidbody>().constraints
el valor de RigidbodyConstraints.None
.
Finalmente para lanzar el proyectil, le aplicamos a la instancia de la bola de fuego creada al presionar el trigger en el control, la fuerza que hemos calculado antes, para lo cual usando la función: <GameObject>.GetComponent<Rigidbody>().AddForce(<vector de fuerza>, ForceMode.Impulse)
. El parámetro ForceMode.Impulse
indica a la función que el vector pasado debe ser aplicado como una velocidad inicial (un impulso) y no como una aceleración, que tendrÃa un comportamiento diferente.
Para cambiar el efecto de sonido de la magia al momento de dispararla y reproducirlo tan solo una vez, usamos la función <GameObject>.GetComponent<AudioSource>().PlayOneShot(<AudioClip>)
Aportes 2
Preguntas 0
Un poco de documentación sobre el Impulse : https://docs.unity3d.com/ScriptReference/ForceMode.Impulse.html
No me funcionó con la posicion de las manos siempre me sale la misma en la anterior y la actual (oculus quest 2), tuve que usar la posicion del magicLaunchPoint
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?