Tutorial de Mesh 101 Capítulo 4: Movimiento de objetos y animaciones de desencadenador con interactables de malla y física
En este capítulo, trabajará con un modelo de la granja eólica. Aprenderá a usar mesh interactables y físicas para agarrar y liberar cuerpos rígidos (en este caso, turbinas eólicas) y configurar un desencadenador de animación mediante Visual Scripting. Para ajustar las cosas, restringirá las turbinas eólicas para que solo se puedan mover dentro de un área especificada.
Este capítulo es un poco más sencillo que lo que hiciste en el capítulo 3--- no tiene scripting, y las redes se configuran para que la física tenga el mismo aspecto para todos los avatares de la sesión.
Hay un par de cosas que debemos hacer antes de empezar a trabajar con la primera estación.
Volver a configurar la jerarquía
- En la jerarquía, contraiga el GameObject Chapter3 y, a continuación, expanda gameObject Chapter4 .
Cambiar la vista para mostrar la terraza de esfera capítulo 4
En la experiencia de Mesh, el participante se moverá sin problemas desde el final del capítulo 3 hasta el principio del capítulo 4 y se ubicará correctamente para comenzar las actividades de aprendizaje del capítulo 4. Sin embargo, cuando salió del modo De reproducción al final del capítulo 3, no se colocó automáticamente con una vista al modelo del capítulo 4 en la ventana Escena . Vamos a configurar esa vista.
En hierarchy (Jerarquía), seleccione gameObject denominado 4.1 -- Grab and Release (Grab and Release).
Mueva el cursor sobre la ventana Escena y presione la tecla F en el teclado.
Esto centra la vista en el objeto 4.1- Grab and Release , pero lo más probable es que no estés en la posición que necesitamos.
Arrastre, gire o acerque la vista hasta que vea las estaciones capítulo 4 delante de usted, como se muestra a continuación.
Estación 4.1: Grab and Release
El objetivo del participante en este capítulo de la formación es mover turbinas eólicas desde la tableta al océano. Una vez que se encuentra allí, las turbinas capturarán el viento del océano, haciendo que sus hojas giren y generen energía.
En la jerarquía, expanda 4.1 - Grab and Release GameObject. Tenga en cuenta que contiene tres GameObjects de turbina eólica que se encuentran en la tableta de la escena.
Vamos a agregar funcionalidades de "grab and release" a WindTurbine1 para que los participantes puedan moverlo en Mesh.
En Hierarchy (Jerarquía), seleccione WindTurbine1.
En el Inspector, haga clic en el botón Agregar componente y, a continuación, busque y agregue Mesh Interactable Setup ( Configuración interactuable de Malla).
Sugerencia
En el capítulo 3 de este tutorial se dio una explicación de este componente.
En el mismo componente, haga clic en la lista desplegable Tipo de objeto y, a continuación, seleccione Manipulable.
Asegúrese de que el componente está activo.
En el componente Rigidbody, expanda la opción Restricciones si es necesario y, a continuación, para la configuración de inmovilización, seleccione X,Y y Z.
Esto impedirá que la turbina se vuelque si se coloca en una superficie desigual.
Comprobación del trabajo
Guarde el proyecto y, a continuación, seleccione el botón Reproducir del editor de Unity.
Ten en cuenta que cada vez que entres en el modo De juego, tu punto de partida en la ventana Juego es la Terraza sphere del capítulo 3. Para este capítulo, queremos estar en la otra terraza sphere--- la que cuenta con las características del capítulo 4. Afortunadamente, hay una manera fácil de llegar allí.
Gire la vista a la derecha hasta que vea el cuadro de información Ir al capítulo 4 .
Vaya al cuadro de información y, a continuación, seleccione el botón Teleportar al capítulo 4 .
Después de llegar a la terraza de esfera del capítulo 4, mueva el cursor sobre WindTurbine1-su forma cambiará- y luego arrastrará la turbina alrededor de la escena.
La turbina permanecerá vertical como resultado de activar sus restricciones freeze Rotation .
Haga clic en el botón Reproducir del editor de Unity para salir del modo de reproducción.
No es necesario actualizar las otras dos turbinas eólicas, ya lo hemos hecho por usted.
Estación: Desencadenador de animación 4.2
La idea aquí es que cuando arrastras una turbina eólica sobre el océano, el "viento" hace que las hojas de la turbina giren. Lo que sucede realmente es que un cubo transparente denominado Animation Trigger se encuentra sobre el océano y actúa como un volumen de desencadenador. Si arrastra una turbina eólica al volumen del desencadenador, se establece un evento On Trigger Enter que inicia una animación de hoja giratoria.
En este capítulo, agregaremos un script a gameObject y, a continuación, habilitaremos la animación en el script.
En hierarchy (Jerarquía), expanda 4.2 - Animation Trigger GameObject (Desencadenador de animación GameObject) y, a continuación, seleccione su objeto secundario denominado Animation Trigger (Desencadenador de animación).
Ten en cuenta que puedes ver los contornos verdes del colisionador de cuadros de GameObject del desencadenador de animación .
En inspector, vaya al componente Colisionador de cuadros y seleccione Is Trigger (Es desencadenador).
Sugerencia
Al seleccionar Is Trigger (Es desencadenador), hace que el objeto que el componente colisionador esté asociado a un volumen de desencadenador.
- En la jerarquía, vaya al capítulo 4>4.1 - Grab and Release (Capturar y liberar) y, a continuación, seleccione WindTurbine1.
- Haga clic en el botón Agregar componente y, a continuación, busque y agregue Script Machine.
Queremos que nuestro script se inserte, pero normalmente significa que debe empezar a crear un nuevo grafo de script desde cero. Tomaremos un acceso directo; deje la opción Origen establecida en Graph por ahora. Adjuntaremos un grafo de script existente y, a continuación, lo convertiremos en un grafo incrustado.
Haga clic en el botón del campo Gráfico y, a continuación, en la ventana SelectSceneGraph , seleccione SPWindTurbineScript.
Haga clic en el botón Convertir . Tenga en cuenta que esto quita la configuración de Graph y cambia la opción Origen a Insertar.
Adición de la animación de la hoja giratoria al gráfico
Dedique un momento a examinar el gráfico de scripts. Tiene dos grupos: el grupo superior desencadena la animación de giro de hoja cuando el usuario arrastra una turbina eólica al volumen del desencadenador y el grupo inferior detiene la animación cuando el usuario arrastra la turbina fuera del volumen.
El gráfico casi está configurado como lo queremos, pero hay un problema restante. Los dos animadores: Establecer nodos de desencadenador se establecen en Este ...
... pero esto (en otras palabras, WindTurbine1) no tiene la animación que queremos desencadenar. Vamos a encontrarlo.
En Hierarchy (Jerarquía), expanda WindTurbine1 y, a continuación, expanda su objeto secundario denominado WindTurbineBody. Esto revela el objeto secundario denominado Windmill_Turbine_001:Propulsores10.
Seleccione Windmill_Turbine_001:Propulsores10 y, a continuación, en el Inspector, tenga en cuenta que contiene un componente animador con el controlador del animador denominado WindTurbine1Propellers.
Este animador es lo que proporcionará nuestra animación.
Arrastre el Windmill_Turbine_001:Propellors10 GameObject desde la jerarquía y, a continuación, en el gráfico de scripts, colóquelo en el primer campo del nodo Animator: Establecer desencadenador ubicado en el primer grupo.
Arrastre el Windmill_Turbine_001:Propulsores10 GameObject de nuevo desde la jerarquía y, a continuación, en el gráfico de scripts, colóquelo en el primer campo del nodo Animator: Set Trigger ubicado en el segundo grupo.
El script ya está completo.
Comprobación del trabajo
Guarde el proyecto y presione el botón Reproducir del editor de Unity.
Como se indicó anteriormente, al entrar en modo de reproducción se coloca tu avatar en la Terraza de esfera capítulo3 . Gire la escena a la derecha y, a continuación, pase al botón Teletransporte al capítulo 4 y presione.
Ahora debería estar en la terraza de esfera capítulo4 . Arrastre WindTurbine1 (recordatorio: es el más alejado de la parte posterior, con las hojas rojas) sobre el océano. Tenga en cuenta que las hojas de la turbina están girando.
Arrastre la misma turbina lejos del océano y colóquela de nuevo en la tableta. Tenga en cuenta que las hojas de la turbina dejan de girarse.
Cuando termine de observar la animación, presione el botón De reproducción del Editor de Unity para salir del modo De reproducción.
No tienes que actualizar las otras turbinas eólicas--- ya lo hemos hecho por ti.
Estación 4.3: Restricción de cuerpos
En este momento, no hay ninguna restricción en la que un participante pueda soltar una turbina eólica. Esperamos que coloquen las turbinas en el océano donde puedan atrapar el viento, pero un participante podría, por ejemplo, soltar accidentalmente una turbina en el suelo. Queremos evitar esto, para asegurarnos de que las turbinas solo puedan aterrizar en la tablet o en el océano, podemos configurar un campo de contención. Esto es básicamente una caja transparente--- las turbinas se restringirán al interior de la caja.
En hierarchy (Jerarquía), expanda 4.3 -- Constraining Bodies GameObject y seleccione su objeto secundario denominado Campo de contención.
En inspector, seleccione el botón Agregar componente y agregue el componente Campo de contención .
En el componente Campo de contención , seleccione el botón "+" situado a la derecha de la opción Cuerpos afectados y, a continuación, en el menú emergente, seleccione la condición Nombre del objeto de juego .
En el cuadro Comienza con , escriba "WindTurbine". Dado que las tres turbinas eólicas de nuestra escena comienzan con "WindTurbine", todas estarán restringidas al campo de contención.
Comprobación del trabajo
Guarde el proyecto y presione el botón Reproducir del editor de Unity.
Como se indicó anteriormente, al entrar en modo de reproducción se coloca tu avatar en la Terraza de esfera capítulo3 . Gire la escena a la derecha y, a continuación, pase al botón Teletransporte al capítulo 4 y presione.
Ahora debería estar en la terraza de esfera capítulo4 . Arrastre una de las turbinas eólicas lejos de la tablet y el océano e intente soltarla en el suelo. El campo de contención impide que lo haga.
Capítulo 4: Resumen
En este capítulo, ha agregado características de Mesh que permiten a los participantes de su experiencia hacer lo siguiente:
Agarrar y mover un objeto
Desencadenar una animación cuando el participante arrastra un objeto a un volumen de desencadenador
Quitar un objeto solo en un área determinada que especificó
Pasos siguientes
Capítulo 5: Hacer que el entorno esté disponible para las pruebas