unity coche

33

Click here to load reader

Transcript of unity coche

Page 1: unity coche

"El coche Tutorial" Parte 1 Creación de un juego de carreras para UnityIntroduction 3 Vamos a mostrar tres Requisitos previos 3 No vamos a mostrar el resultado de cuatro Parte 1: Montaje del coche 5 Adición de colisión 6 Configuración de sombra para el modelo de coche 7 Adición de componentes del automóvil 8 Añadir una gota de sombra 10 Skidmarks 11 Número máximo de 12 marcas Marcos Ancho 12 Desplazamiento de tierra 12 13 min Distancia Textura 13 Adición de sonido 14 Finalización del montaje 15 "El coche Tutorial" - Creación de un juego de carreras para la Unidad, Parte 1 la unidad "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 1 la unidad 3 Introducción El objetivo de este tutorial es mostrar cómo crear un juego de carreras con la Unidad.Vamos a ensamblar un vehículo en un modelo 3D, secuencias de comandos y componentes. de un juego de conducción, donde se puede jugar con una escena contenida se proporciona música y explorar cómo todo se junta. Nosotros también le proporciona una escena que tiene todo a punto del coche, pero el que a continuación se trabajo para completar. Mostraremos Empecemos por hablar de lo que este tutorial se ocupará. Se divide en tres secciones distintas que pueden trabajado en forma independiente el uno del otro: 1. Montaje de los coches Cómo montar una casa prefabricada de coches de un modelo 3D, secuencias de comandos y componentes. Esta es la sección que se leyendo en este momento. 2. Afinando el coche Cómo ajustar el coche a comportarse "mejor" o de diferentes maneras. 3. Bajo el capó Una mirada más a fondo en el código real que conduce el coche. Requisitos previos 

Page 2: unity coche

El tutorial no pretende ser un punto de entrada al aprendizaje de la Unidad. Usted debe tener una comprensión básica de cómo se organiza la Unidad, lo que es un GameObject es, ¿qué componentes son y así sucesivamente. Algunos "El coche Tutorial" - Creación de un juego de carreras para la Unidad, Parte 1 la unidad "El coche Tutorial" Parte 2 Creación de un juego de carreras para UnityPart 2: Afinando el coche de tres Centro de Masas 3 Suspensión 5 Suspensión rango de 6 Suspensión muelle 6 Suspensión de amortiguador 6 Arrastre multiplicador 6 Velocidad, giro y los engranajes 8 Exportar el coche como un paquete de nueve "El coche Tutorial" - Creación de un juego de carreras para la Unidad, Parte 2 la unidad "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 2 la unidad 3 Parte 2: Afinando el coche Si usted ha seguido a lo largo de la parte 1 de este tutorial y montado el coche, que ya están en un punto donde el coche es bastante impresionante. Pero si lo ha impulsado un poco, es probable que tenga notado que hay después de todo espacio para algunas mejoras. Aquí es donde entra en ajustar la imagen. En el juego de ajustar el desarrollo es una parte crucial de la toma de la diversión del juego, un reto, impresionante o lo que sea objetivo que tiene para su juego específi cos. La idea es que cuando se ha configurado las tuercas y tornillos que hacen de su funcionar el juego, que podría haber algo que no se siente del todo bien - tal vez usted lo desea el coche de manejo que se un poco diferente, tal vez usted lo desea la velocidad máxima a ser algo diferente, o tal vez desea cambiar las luces de escena. Una de las principales de la Unidad es que es tweakability - como hemos visto, todas las variables públicas en los scripts se muestran en el inspector, por lo que puede cambiar los valores, sin entrar en el código. Y aún más poderoso: Cuando usted ha hecho un cambio que acaba de golpear el juego, y al instante podrá ver el resultado de esa cambio. Usted nunca tiene que esperar a que la escena que ser reconstruido o para un importante volver a compilar el código. 

Page 3: unity coche

Centro de Masas Ahora la cosa más obvia que debe ser ajustado es probable que el coche puede ser fácilmente fl ipped en torno al encender (si no ha probado todavía, a continuación, volver a jugar y acelerar un poco y luego girar de lado a lado, mientras que la aceleración - el coche se fl IP a través de muy fácilmente). La razón de este ipping fl es que todavía no hemos defi ne el centro del coche de la masa. Todas las fuerzas que se aplican a la Rigidbody del coche, son aplicadas en el centro de la Rigidbody de masa. El centro de masas de la Rigidbody se calculará por unidad de acuerdo con la colisionadores adjunta a la Rigidbody, ya sea en el GameObject mismo o en los objetos secundarios. Desde el centro de masa de un coche no es típicamente "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 2 la unidad 4 el centro del coche (y probablemente no el centro de la masa que se calcula la Unidad), que desea establecer el centro de masa nosotros mismos. La posición del centro de masa de un coche depende de la colocación del motor y otros factores, y puede variar mucho de un modelo de automóvil a otro. Para el coche en este proyecto el tutorial centro de masa podría ser un poco detrás del motor, ligeramente por encima de la altura oor de la Florida del coche. Ver su posición en esta imagen: • Crear un GameObject nuevo y se arrastra con el objeto del juego de coches. • Cambiar el nombre a CenterOfMass • Restablecer la transformada de CenterOfMass (haga clic en la rueda dentada pequeña a la derecha de la transformada en el Inspector y seleccione "Restablecer". Esto le dará la misma posición que su padre, el coche. • Ajuste la posición del lugar que le gusta. O bien hacerlo arrastrando, o el tipo en la posición. Un buena posición para el centro de este coche es de la masa podría ser (0, 0.1, 0.65). • En la ventana de asignar el CenterOfMass a la ranura para que en el componente de secuencia de comandos de coches. En general, es una mala idea tener el centro de masa se coloca a ambos lados del centro en el eje x, porque esto hará que la dirección comportan de manera extraña, y por lo tanto también hemos establecido la variable x de la posición 0. También puede cambiar de destino de la cámara para ser el CenterOfMass juego de objetos en lugar del coche "El Tutorial de coches" - Creación de un juego de carreras para

Page 4: unity coche

la Unidad, Parte 2 la unidad 5 sí mismo. Esto le dará una sensación ligeramente diferente - jugar un rato con él y decidir el ajuste que como la mayoría de los. Suspensión Otro factor que puede cambiar en gran medida el comportamiento del coche es de las propiedades de su suspensión. El trabajo de la suspensión del coche es aumentar al máximo la fricción entre los neumáticos y la superficie de la carretera. Cuando usted está conduciendo el coche por un bache, toda la energía vertical de la rueda se transfiere a la marco. Si no teníamos una estructura de intervención, esto podría fácilmente dar lugar a perder el contacto de la rueda con la carretera por completo, y luego se cierra de golpe en la carretera debido a la fuerza de la gravedad. La suspensión es que la estructura de intervención. Tenemos tres diferentes variables para modificar el Inspector - la gama, el amortiguador y el primavera. Todos son parte de la clase WheelCollider que utilizamos en las ruedas del coche. A la izquierda vemos el coche con la configuración estándar, ya la derecha lo vemos con mucho mayor suspensión rango. En combinación con las propiedades de muelles y amortiguadores, puede hacer que se comporte como todo, desde un coche de Fórmula Uno a un camión enorme. Por supuesto, los gráficos deben coincidir la configuración para que sea creíble, aunque "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 2 la unidad 6 Suspensión gama Esta es la duración de la suspensión de cuando se trata de un estado de ser totalmente comprimida al más grande distancia puede estar fuera del marco del coche. Suspensión de la primavera El ajuste de este valor determina la rigidez del muelle de la suspensión. Marco es muy alto que hace más probable que la suspensión se extiende completamente, de modo que las ruedas será mucho más lejos de la marco, y ajuste de muy baja la suspensión será mucho más animoso. Al ajustar este valor, será evidente que la masa del coche también tiene mucho que decir aquí. Un coche muy pesado requiere una la primavera con más rigidez que un coche muy ligero. Por defecto nos hemos fijado el

Page 5: unity coche

muelle de la suspensión trasera a ser menos rígida que la parte delantera y la razón es que el centro de masa se distribuye más a la parte frontal, lo que requiere una mejor suspensión de allí. Jugando con diferentes valores para las partes delantera y la suspensión trasera puede producir resultados muy diferentes. Suspensión de amortiguador Amortiguación ayuda a controlar el movimiento de la suspensión. Sin amortiguación, la suspensión la primavera se extendería y lo liberan de la energía a un ritmo incontrolable - se extendería a su frecuencia natural de manantial hasta que toda la energía almacenada en él se acabó. Esto daría lugar a una muy saltos y el coche incontrolable. El regulador o amortiguador de choque se convierte la energía cinética no deseados en calor que se transfiere de distancia, en el fl uido hidráulica, haciendo el viaje mucho más suave. Arrastre Multiplicador Cuando agregamos el Rigidbody al coche, vimos que había una propiedad de arrastre.la unidad 7 inercia o resistencia del aire que afecta a la Rigidbody, por lo que es más difícil de mover. Cuando un coche se ha diseñado, un montón de consideración es a menudo puesto en darle una forma que minimiza la fricción de la la resistencia del aire cuando se mueve. Pero desde que un coche tiene la intención de avanzar, la forma tiene esto en cuenta - sólo echar un vistazo en el modelo de automóvil en el editor desde el frente, los lados y la parte superior, y te darás cuenta que es mucho más ágil cuando se ve desde la parte delantera de los lados y la parte superior. Nos tomamos esto en cuenta mediante la creación de nuestra propiedad arrastre multiplicador propios que usamos en lugar de la propiedad arrastre incorporado en el rigidbody. Echa un vistazo a la componente de secuencia de comandos de coches en el inspector, donde se verá que tenemos una variable Arrastre multiplicador, que es un vector con los valores de x, y y z. Esto hace posible que podamos establecer diferentes valores de arrastre para el frente, lados y parte superior del coche, simulando las condiciones reales cuando se conduce un coche con más precisión. • El valor de X es el arrastre hacia el lado • El valor de Y es la resistencia a la cima • El valor de Z es el arrastre de la parte delantera El valor de x es importante para controlar la fuerza que evita que el coche se deslice hacia un lado cuando de inflexión. Cuanto mayor sea el valor de x más resistencia hacia los lados. 

Page 6: unity coche

El valor de z es, con mucho, la más interesante, ya que puede disminuir o aumentar la fuerza que frena el coche de la velocidad hacia abajo. Si la ponemos a menos de 1 obtendrá menos resistencia, una aceleración más rápida y una velocidad máxima superior. Más de uno y el coche tiene que luchar contra una fuerza más poderosa en Para avanzar, por lo que es más lento. Los valores de resistencia son muy sensibles, por lo que se aconseja a los experimentar con cambios pequeños ajustes cuando el arrastre "El Tutorial de coches" -. Creación de un juego de carreras para la Unidad, Parte 2 la unidad 8 Dado que el coche no se supone que los viajes hacia arriba, el valor y no es tan interesante para el cambio. La mayoría de los fuerza importante controlar el coche en el eje y es después de todo, la gravedad que afecta a la rigidbody. Velocidad, giro y engranajes Ahora hemos llegado a las variables más evidente que también tiene un impacto muy grande en sus coches comportamiento. La variable de la velocidad máxima es un pan comido: Esto ajusta la velocidad (o lento) el coche puede ir. Desde nuestro coche modelo es mucho más simple que el modelo de un coche real, y por ejemplo, no tienen realmente ningún valor a conjunto que afecta es la aceleración (excepto el arrastre), la variable Top Speed también afectan indirectamente a la aceleración. Haciendo que el coche muy rápido también hará llegar a una alta velocidad más alta y por igual viceversa. Si quieres jugar con la velocidad máxima y aceleración, usted podría intentar ajustar tanto el Top Velocidad variable de valor y la resistencia de z (que fue la resistencia del aire en la dirección de avance) Para conectar tenemos dos variables - Gire a la máxima y mínima de vuelta. Ambos son los valores de la forma bueno el coche está a convertir. Un valor alto significa convertir excelente y un valor bajo, es muy limitada la capacidad de giro. Los estamos utilizando en conjunto en la escritura del coche para cambiar la capacidad de los coches a su vez basado en la rapidez con que se va: • A velocidades muy bajas, es el valor establecido para girar al máximo que se utiliza cuando se enciende. • Cuanto mayor sea la velocidad del coche consigue, cuanto más cerca es la capacidad de giro llega a la vuelta mínima. ¿Qué esto se suma a cuando se utiliza los valores predeterminados para el coche (que

Page 7: unity coche

son para un mínimo de 10 y 15 "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 2 la unidad 9 para el máximo) es que se hace más difícil a su vez cuando se va rápido. Esto da una sensación más realista, lo que garantiza no sólo puede ir a toda velocidad en una curva cerrada y esperar que el coche para sobrevivir. Usted puede experimentar con ambos valores para hacer el coche mejor o peor a convertir y para hacer la diferencia entre el encendido cuando se va lento y rápido alto o más bajo. Finalmente, se han puesto de manifiesto la variable número de velocidades. Cuando llegamos a la parte en que miramos dentro de la secuencia de comandos de coches vamos a ver lo que este se utiliza para el cálculo. Dado que el coche se basa en un simple modelo, los engranajes no se imite el comportamiento de arte real. Sin embargo, se utilizan para calcular el las fuerzas del motor, y quizás más importante es que se utilizan en la secuencia de comandos de control del sonido, a cambiar el sonido del tono del motor, basado en lo que se encuentran actualmente en marcha, y qué tan rápido actualmente estamos pasando. Esto hace que el sonido del coche como si es a partir de bajas revoluciones en cada marcha, y el aumento de la RPM hasta que se alcanza el límite, donde pasará el tren. Al establecer este valor a otro número de marchas simplemente crea una ilusión a través del sonido de cómo marcha el coche tiene muchos. Exportar el coche como un paquete Si ha seguido a lo largo y montado su propia versión del coche, que ahora tienen los conocimientos necesarios para ponerlo en práctica en sus propios proyectos. Una manera fácil de transferir a través de proyectos es hacer un paquete de la Unidad de la Prefabricados necesario. En primer lugar le permite a su vez el coche que hizo en una casa prefabricada para que pueda ser reutilizada sin hacer el montaje y ajustes: • En la vista del proyecto, haga clic en 'Crear' y seleccione 'prefabricada'. Usted recibirá un vacío Prefab en el proyecto vista denominada "nueva prefabricada. "El coche Tutorial" - Creación de un juego de carreras para la Unidad, Parte 2 la unidad 10 • Cambie el nombre del Prefab a "coche de carreras" (un palíndromo bonito) o cualquier otro nombre a su gusto. • Arrastre el GameObject coche desde el punto de vista jerárquico y en el Prefab. Esto ya se ha hecho por ti si (tiene Prefabricados / coche), pero ahora también tiene el suyo propio. Hay algunas piezas que se necesitan además de los prefabricados de coches con el fin

Page 8: unity coche

de crear un paquete que sólo funciona a partir de cero. Estos son los Skidmarks, Main_Camera y Directional_Light_Car_Road. Afortunadamente se han hecho en Prefabricados ya. También hay unos cuantos scripts que tenemos que incluir en nuestro paquete, que no sean incluidos si no lo especifica: SoundToggler.js, ImageEffects.cs y ImageEffectsBase.cs La razón es que estos secuencias de comandos no se incluyen en la escena, sino que se utiliza a través de secuencias de comandos cuando el juego se ejecuta. Los guiones de imágenes se incluyen en el Pro Norma activos, pero los estamos incluyendo en el paquete por lo que se puede importar en un proyecto completamente vacío y el trabajo justo. • En la vista del proyecto seleccionar todos estos elementos: • Prefabricados / VFX: Main_Camera Directional_Light_Car_Road, Skidmarks • scripts / Javascript: SoundToggler.js • Pro Activos Estándar / Imagen base / ImageEffects.cs y ImageEffectsBase.cs "El coche Tutorial" - Creación de un juego de carreras para la Unidad, Parte 2 la unidad 11 • El Prefab de coches que ha creado. • Haga clic en "paquete de exportación ..." • En la ventana emergente asegurarse de que las dependencias Incluir está activada.Este se reunirán todos los activos que su selección depende de con la excepción de los activos que sólo se accede a través de secuencias de comandos. • Haga clic en 'Exportar', elija un nombre para el paquete y guárdelo. El proceso de obtención de su coche en su propio proyecto es ahora simple: • En el proyecto de nuevo ir a paquete de importación Activos-> ... • Vaya al paquete que ha guardado y abrirlo. • Asegúrese de que todo lo que se selecciona (Haga clic en 'Todos') y luego haga clic en Importar. • Unidad importará todos los activos y la prefabricados aparecerá en la vista del proyecto, listos para ser arrastrados a una escena. Usted es totalmente libre de tomar el coche y usarlo en sus propios proyectos, y ahora usted tiene el conocimiento para que juntos, ajustarlo y ponerlo en todos los proyectos - así que por favor seguir adelante y hacer una realmente impresionante juego de conducción! "El coche Tutorial" Parte 3 Creación de un juego de carreras UnityPart durante 3: Bajo la Capucha 3 ¿Cuáles son las cosas más importantes? 4 

Page 9: unity coche

Inicio () - el programa de instalación 5 SetupWheelColliders () 5 SetupWheelFrictionCurve () 6 SetupWheel () 6 SetupCenterOfMass () 7 SetupGears () 8 SetUpSkidmarks () 8 Actualización () 9 GetInput () 9 CheckHandbrake () 10 StopHandbraking () 10 Check_If_Car_Is_Flipped () 11 FlipCar () 11 UpdateWheelGraphics () 11 UpdateGear () 13 FixedUpdate () - Todos tus física son pertenecer para mí 13 UpdateDrag () 13 UpdateFriction () 15 CalculateEnginePower () 16 CalculateState () 17 ApplyThrottle () 18 ApplySteering () 20 EvaluateSpeedToTurn () 20 Física Modelo Real 24 Incluido el 24 Prefabricados Los scripts incluidos 25 "El coche Tutorial" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 3 Parte 3: Bajo la Capucha Hemos cubierto cómo montar un coche de trabajo de un modelo 3D, secuencias de comandos y componentes integrados. Nosotros También han estudiado las variables expuestas y la forma en que se puede utilizar para modificar el comportamiento del coche. Ahora es hora de que mirar más a fondo en la mecánica fi dentro del motor del coche - El Car-script. • Haga doble clic en el guión Car.js para abrirlo con el editor de código. Este script puede a simple vista primera fi ser un poco intimidante, que abarca más de 500 líneas de código y comentarios, y un montón de variables y funciones. No se desespere si. El guión está estructurado de manera que tenemos 

Page 10: unity coche

relativamente pequeñas funciones con nombres significativos, que hace exactamente lo que dicen que hacen. Después de esto, el código no está llena de comentarios que lo explica todo de nuevo - simplemente porque el código está diciendo que es propia historia. La forma en que sugieren que veas que es fi nd los mejores puntos de entrada y luego seguir adelante. En este caso de que estos puntos de entrada será la de inicio (), Update () y FixedUpdate () funciones. Cada uno de estos "principales" funciones están pidiendo otras funciones. Así que cuando empezamos mirando el Función start (), vemos que la función primera ficción llamada es SetupWheelColliders (). Busque que la función en el código y el estudio de lo que hace, y luego volver a Inicio () e ir a la siguiente función que es SetupCenterOfMass (). Siguiendo el código camino a obtener la información general sobre lo que está sucediendo realmente en el código, que hace que el automóvil funcione como lo hace "El Tutorial de coches" -. Creación de un juego de carreras para la Unidad, Parte 3 la unidad 4 En lo que sigue vamos a ver todas las funciones. No vamos a explicar cada línea de código, pero estamos proporcionando un punto de entrada y pasar por todo lo esencial que se lleva a cabo desde la configuración de lo que ocurre cada fotograma. Así que sin más preámbulos, comencemos por el principio. ¿Cuáles son las cosas más importantes? Trabajar dentro de la Unidad es fácil en muchos sentidos, a causa de cosas como el editor, arrastrar y soltar ómo workfl y todos los construidos en los componentes. Configuración del coche está a mitad de camino - La unidad se encarga de importar el modelo, tenemos la colisión, lo que hace y la configuración física para nosotros con unos pocos clics para Añada los componentes. Dentro de nuestro script, que trabajan principalmente en la manipulación de estos componentes. Usted, por supuesto, tropezar con una gran cantidad de cálculos que utilizamos para determinar lo que ocurre con el coche. Se trata de un parte inevitable de hacer juegos de verdad: Usted tiene que configurar algo de lógica, por ejemplo mediante secuencias de comandos cuando se quiere hacer algo más que lo básico. Pero estos cálculos son sólo eso: los cálculos de obtener los valores correctos para alimentar a nuestros componentes. Si usted siente que el código es abrumadora y no saben por dónde empezar, un enfoque

Page 11: unity coche

podría ser centrarse en los siguientes artículos, y considerar la mayoría de lo demás que está sucediendo como algo que afecta a y soporta los siguientes elementos: • El Rigidbody • Los colisionadores de ruedas • Los cálculos que hacemos y el orden en que las hacemos in "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 5 Piense en ello como esto: • Mediante la adición de la rigidbody a nuestro modelo de coche que tenemos una forma de controlar de una manera física. Nosotros hacerlo mediante el cálculo de las fuerzas que la impulsan hacia delante y las fuerzas que se ralentiza. • Mediante la adición de los colisionadores de ruedas tenemos control sobre el lugar donde el coche con la carretera. Inicio () - el programa de instalación Aquí es donde hacemos la inicialización necesaria para el coche. La función start () se ejecuta sólo una vez, en el comienzo de la secuencia de comandos, antes de la actualización de funciones.Por lo tanto Start () se utiliza a menudo para establecer los requisitos iniciales en el código. La primera función de música que se visita es: SetupWheelColliders () Tenemos cuatro ruedas unidas a nuestro coche, y los hemos puesto en el FrontWheels y RearWheels órdenes del Inspector. En esta función se crea el colisionadores reales, por lo que las ruedas interactuar con la superficie por debajo del coche. Comenzamos en la función visitando SetupWheelFrictionCurve () "El Tutorial de coches" -. Creación de un juego de carreras para la Unidad, Parte 3 la unidad 6 SetupWheelFrictionCurve () En SetupWheelFrictionCurve () simplemente crear una nueva WheelFrictionCurve y asignarle los valores que creemos que son apropiados para nuestro coche. Un WheelFrictionCurve es utilizado por WheelColliders a describir las propiedades de fricción de la llanta de la rueda. Si quiere tomar en serio con el uso de la Unidad construido en WheelColliders, pase por la documentación. SetupWheel () Después de la creación de la curva, estamos de vuelta en SetupWheelColliders (), listo para crear la colisionadores y objetos reales de la rueda. Esto se hace llamando a la SetupWheel function () para cada una de nuestras ruedas. Si nos fijamos en esa función, verá que tiene dos parámetros: una transformación y un

Page 12: unity coche

booleano, y devuelve un objeto de la rueda. Lo que hacemos es que vamos a alimentar esta función con la transformación de cada de nuestras ruedas se transforma, y que indique si esta rueda es una rueda delantera.La función de continuación crea y devuelve un objeto de la rueda que ponemos en nuestra amplia ruedas, que posee todas nuestras ruedas para el resto de la secuencia de comandos: for (var t: Transformar en frontWheels) {    ruedas [wheelCount] = SetupWheel (verdadero t);    wheelCount + +; { Dentro SetupWheel () en realidad es bastante simple lo que hacemos: Creamos una nueva GameObject y dar es la misma posición y rotación de la rueda que estamos procesando. A continuación, añadimos un componente WheelCollider el GameObject "El Tutorial de coches" -. Creación de un juego de carreras para la Unidad, Parte 3 la unidad 7 Hemos establecido las propiedades de la WheelCollider de las variables de suspensión que hablamos cuando hemos ajustado el coche (el rango de suspensión, muelles y amortiguadores). Entonces se crea un nuevo objeto de la rueda y los piensos que las propiedades que necesita: El colisionador hemos creado, la WheelFrictionCurve, los gráficos de la rueda (que es el freno de disco objeto que arrastró a la inspector cuando creamos el coche) y los gráficos de la llanta (que es el hijo del freno de disco). Hemos establecido el radio de la rueda de forma automática, en función del tamaño del neumático: wheel.collider.radius = wheel.tireGraphic.renderer.bounds.size.y / 2; Finalmente, comprobar si la rueda que acabamos de crear es una rueda delantera o la rueda trasera mirando el valor verdadero o falso que pasamos a la SetupWheel (). Si se trata de una rueda trasera, que establezca su variable driveWheel de verdad, y si se trata de una rueda delantera que en lugar de establecer su variable steerWheel en true. Más adelante en el código nos aseguramos de que el coche sólo puede conducir, si por lo menos una de las ruedas motrices estén tocando el suelo, y sólo de dirección si al menos una rueda de dirección está en la tierra. Además hacemos una pequeña maniobra para la rueda delantera, creando un objeto de juego extra que ponemos en entre el marco del coche y la rueda. Esta es la columna SSL que utilizamos más tarde 

Page 13: unity coche

cuando gire la rueda al girar. Entonces volvemos la rueda creado, que se puso en la matriz de la rueda trasera en SetupWheelColliders () y cuando se han procesado todas las ruedas, que salir de la función y volver al Inicio (). SetupCenterOfMass () Esta es la función siguiente que visitamos. Esta es una función muy pequeño, que establecen el centro de la rigidbody de "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 8 masa al objeto CenterOfMass juego que hemos creado antes. Si el centro de masa no ha sido conjunto, el rigidbody usará el valor por defecto que calcula la Unidad. Luego convertir la velocidad máxima entrado en el inspector de utilizar una función de utilidad pequeña: TopSpeed = Convert_Miles_Per_Hour_To_Meters_Per_Second (TopSpeed); La función sólo se multiplica la variable TopSpeed con el número 0.44704, lo que se traduce a metros por segundo. Esta es la configuración para que podamos introducir la velocidad deseada en el inspector en millas por hora. En el cálculo de la física, que operan con metros / segundo. También tenemos una pequeña función de efectuar el cálculo inverso, lo cual es útil si por ejemplo quieres que la salida de la velocidad del coche en millas por hora. SetupGears () Los engranajes se configurará automáticamente en esta función mediante la asignación de una velocidad máxima a cada equipo y el cálculo de cuánta fuerza es necesaria para acelerar el coche a la velocidad determinada en cada equipo. La fuerza es calcula utilizando los valores de fricción y arrastre suministra en las variables públicas, lo que significa que esta cálculo es básicamente una versión lineal del eje z del cálculo de la fricción en las funciones de actualización. Un factor se multiplica en este valor de la fuerza para asegurar que el ascensor se acelera a una velocidad mayor que las asignadas en los umbrales de los engranajes. SetUpSkidmarks () Esta función fi nds el objeto del juego Huella de frenado en la escena y almacena una referencia a la misma y es ParticleEmitter, utilizado para el humo. El código de la skidmarks no se cubre en este tutorial, pero que "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 9 no debe dejar de abrir la secuencia de comandos e investigar por su cuenta. Al final de

Page 14: unity coche

Inicio () que asignar el valor de x de nuestra matriz dragMultiplier a una variable: initialDragMultiplierX = dragMultiplier.x; Esto se almacena ya que modificar la variable x de la dragMultiplier cuando estamos usando el freno de mano, y luego deben volver al valor inicial de nuevo cuando no somos parte de frenado. Eso es todo para el establecimiento de todo en la función start (). Ahora vamos a pasar al bucle principal de la secuencia de comandos en las funciones de actualización, que es lo que sucede en cada marco. Actualización () GetInput () Lo fi primera que hacemos en cada fotograma es leer la entrada del usuario mediante una llamada al GetInput function (). La fi primeros dos líneas lee los ejes vertical y horizontal y la almacena en nuestro acelerador y dirigir las variables: aceleración = Input.GetAxis ("vertical"); dirigir = Input.GetAxis ("horizontal"); Los ejes vertical y horizontal se puede configurar en el Administrador de la Unidad de entrada (Editar -> Configuración del proyecto -> De entrada). Por defecto, el eje vertical se establece en 'W' las llaves y 'flecha arriba' en la dirección positiva y 'S' y 'flecha abajo' de la dirección negativa, y el valor que se lee aquí se utiliza para aplicar la fuerza de aceleración después. El eje horizontal se establece que las teclas «a» y «flecha hacia la izquierda" en una dirección y "D" y "flecha derecha" en la otra, que se utiliza para dirigir "El Tutorial de coches" -. Creación de un juego de carreras para la Unidad, Parte 3 la unidad 10 CheckHandbrake () Después de leer la entrada para controlar el coche, llamamos a la CheckHandbrake () función. Se trata de un específicamente la función c que comprueba si la tecla de espacio se ha reducido, y se aplica una lógica consecuencia: Cuando inicialmente espacio en la prensa, que establecer la variable de freno de mano en true, inicia un temporizador y el freno de mano cambia el valor dragMultiplier.x (haciendo que el coche un manejo más débil, parecido a la mano de frenado). Mientras seguimos en la explotación del espacio, nada más va a suceder, ya que la variable es el freno de mano ahora se establece en true. Cuando el espacio no está registrado como siendo presionado, el código en el bloque más va a ser ejecutado, pero sólo 

Page 15: unity coche

si el freno de mano se establece en true. De nuevo, esto significa que el código sólo se producirá cuando la primera ficción de usuario le permite ir de espacio, ya que establecer la variable de freno de mano en falso dentro del bloque. El StopHandbraking co-rutina (), entonces se iniciará: StartCoroutine (StopHandbraking (Mathf.Min (5, Time.time - handbrakeTime))); StopHandbraking () StopHandbraking () toma una variable de entrada que especifica el número de segundos que deben pasar en conseguir el dragMultiplier.x de nuevo a su estado inicial. Este valor se le da a él como el mínimo de 5 y la temporizador freno de mano que comenzó cuando empezamos handbraking. La función a continuación, pasa la espe- caron cantidad de segundos obtener el valor dragMultiplier.x regresar de su valor actual, en la inicial valor que se almacena en la final de la función start (), haciendo que el coche el manejo normal de nuevo. "El coche Tutorial" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 11 Check_If_Car_Is_Flipped () De vuelta en Actualizar ahora llamar a la función Check_If_Car_Is_Flipped () para realizar la "Tortuga-marca". Dentro de esa función que verifique la rotación del coche. Es perfectamente válido para que el coche se fl ipped más o torcida en ángulos extremos, por ejemplo si una falla, o haciendo algún tipo de truco loco, pero queremos eliminar la posibilidad de que el coche termina en una posición en la que no puede conducir más. Por lo tanto, comprobar si la rotación es en un ángulo donde el coche no se puede conducir más, y si lo es, se añade el tiempo transcurrido desde el último fotograma de la variable RESETTIMER. Si este valor al final hace que supere el valor que nos hemos fijado para ResetTime (5 segundos por por defecto), llamamos a la FlipCar function (). Si la rotación del coche no está en un mal ángulo, se establece el contador a cero en su lugar. FlipCar () En FlipCar () obtenemos el coche en que los conjuntos de ruedas y su velocidad a cero, así que podemos empezar a conducir de nuevo desde cero. UpdateWheelGraphics () Esta es la función más largo y complicado que se llama desde Update ().Afortunadamente, existe una sección central de gran tamaño que sólo se ocupa de la colocación de skidmarks, que no estamos metiendo. 

Page 16: unity coche

La parte importante en lo que respecta a las ruedas es actualizar su posición y la rotación en esta función. Para cada rueda que comenzar por comprobar si se está tocando el suelo o no. Si es así, que establecer la posición de los gráficos de la rueda a la posición del punto en que llega al suelo, pero se movió hacia arriba una distancia igual al radio de la rueda. Esto moverá el centro de la rueda a la correcta posición en relación al chasis del auto "El Tutorial de coches" -. Creación de un juego de carreras para la Unidad, Parte 3 la unidad 12 w.wheelGraphic.localPosition = wheel.transform.up *              (+ WheelRadius wheel.transform.InverseTransformPoint (wh.point) y.); Después de colocar la rueda se obtiene la velocidad de la rigidbody en el punto de impacto en el suelo, traducirlo al espacio local para la rueda y almacenar esta en el objeto de la rueda. w.wheelVelo = rigidbody.GetPointVelocity (wh.point); w.groundSpeed = w.wheelGraphic.InverseTransformDirection (w.wheelVelo); Si el disco que estamos procesando actualmente no está tocando el suelo, ponemos la posición de la rueda sobre la base de las ruedas de su padre y transformar la gama de la suspensión.Luego, aplicar la rotación de la rueda. Si se trata de un buey de la rueda, se inicia mediante la aplicación de la rotación que visual de la dirección. Esto se hace girando la columna de dirección de objetos del juego que hemos creado para el ruedas de dirección anterior. Tenemos que girar en un factor de cuánto estamos girando la rueda (la dirección variable que se establece sobre la base de entrada del usuario) multiplicado por el ángulo de giro máximo que hemos establecido. Desde la Columna de buey es uno de los padres a los gráficos de la rueda, la rueda a su vez, con la columna de dirección. Para todas las ruedas que a continuación, aplicar la rotación que visualiza la velocidad, haciendo girar la rueda en su avance dirección basada en la velocidad y el radio de la rueda: w.tireGraphic.Rotate (* Vector3.right (w.groundSpeed.z / wheelRadius) *            Time.deltaTime * Mathf.Rad2Deg), "El coche Tutorial" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 

13 UpdateGear () La última función que llamamos de actualización () es UpdateGear (), que es una pequeña función que evalúa qué marcha el coche se encuentra actualmente en al observar la velocidad en

Page 17: unity coche

comparación con la velocidad de los valores que nos fijamos para cada marcha atrás en SetupGears () que hemos llamado de Inicio (). Esto es todo lo que sucede cada fotograma de la función Update () - no es tan complicado, ¿no? La sección fi nal tenemos que mirar es el resto del bucle principal, es decir, los cálculos de la física que tienen lugar dentro FixedUpdate (). FixedUpdate () - Todos tus física se me pertenece Cuando se trata de la física, es fundamental para mantener los cálculos y las operaciones bajo un estricto control, para asegurarse de que el resultado es uentes suave y fl. FixedUpdate se crea a tal efecto. Se garantiza que se ejecuta en intervalos de tiempo fi jo. La documentación descriptiva de actualización de la Orden le dirá que eso de FixedUpdate (): "Se puede llamar varias veces por el marco, si la velocidad de fotogramas es baja, y no puede ser llamado entre los marcos en absoluto si la velocidad de fotogramas es alta. Todos los cálculos de la física y las actualizaciones aparecen inmediatamente antes FixedUpdate (). " Tenemos una serie de funciones ejecutadas desde FixedUpdate () y todos ellos están preocupados con el cálculo y la aplicación de fuerzas para el coche. UpdateDrag () La primera música que se visita es UpdateDrag (). Arrastre es la resistencia del aire que afecta el coche cuando está en movimiento, lo que significa que esta es una fuerza que afecta el coche en la dirección opuesta a donde va, frenarla "El Tutorial de coches" -. Creación de un juego de carreras para la Unidad, Parte 3 la unidad 14 Estamos construyendo la resistencia basada en la velocidad al cuadrado del coche: Vector3 (-relativeVelocity.x Mathf.Abs * (relativeVelocity.x),       -RelativeVelocity.y Mathf.Abs * (relativeVelocity.y),      -RelativeVelocity.z * Mathf.Abs (relativeVelocity.z)); Esto significa que con el aumento de la velocidad de la resistencia aumenta aún más.La cuadratura de la velocidad cuando arrastre el cálculo se basa en la fórmula real de arrastre utilizadas en la física. Entonces el relativeDrag se escala con la que ya dragMultiplier miró, para tener en cuenta que el coche de perfi l se ve muy diferente desde el frente, lados y parte superior. Si somos parte de frenado que se aplican las fuerzas adicionales a los valores hacia los lados y hacia delante de la resistencia, sobre la base de qué tan rápido el coche se va, y cómo el automóvil se enfrenta en relación a la velocidad. Observe cómo se utilizar el producto escalar entre la velocidad y la dirección de avance del vehículo para calcular el extra 

Page 18: unity coche

arrastre en la dirección de avance coches. El resultado es la ecuación de arrastre adicional en la dirección hacia delante cuando el coche está mirando hacia delante (de frenado más) y menos cuando se enfrenta a más de lado (deslizamiento). Para el valor de arrastre x el mismo dice: Cuanto más el coche se desliza hacia un lado, cuanto más aumentan la x valor de arrastre, para frenar el coche en lugar de dejar que se deslice por siempre "El Tutorial de coches" -. Creación de un juego de carreras para la Unidad, Parte 3 la unidad 15 Si no somos parte de frenado sólo actualizar el valor de x: drag.x *= TopSpeed / relativeVelocity.magnitude; Esto es una vez más algo que no es más que hacer para que la unidad de coche más bonito - se aumenta el valor de arrastrar hacia los lados más lento que vamos a evitar el deslizamiento del coche demasiado en el camino cuando se enciende. En el final de la función se aplica la fuerza a la rigidbody: rigidbody.AddForce (transform.TransformDirection (arrastre) rigidbody.mass * * Time.deltaTime); Desde la fuerza de arrastre es opuesta a la velocidad, lo aplicamos a la rigidbody en que es transformar la dirección, dando lugar a la desaceleración del coche abajo. UpdateFriction () Esta función se encarga de la aplicación de la fricción que hay entre las ruedas y la superficie que están encendidos. A este respecto, es muy sencillo, ya que estamos utilizando la WheelFrictionCurve que establecido en el principio. La curva de fricción de la rueda da una fuerza como la producción, basado en la medida de deslizamiento de los neumáticos que le dio como entrada. Esta fuerza se separa en dos direcciones: la fricción hacia adelante (Responsable de la aceleración y frenado) y la fricción lateral (responsable de mantener el coche orientado). Cuando se le asigna la curva de fricción de las ruedas, este se encarga de la actualización de la fricción entre la rueda y la superficie para nosotros: "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 16 w.collider.sidewaysFriction = WFC; w.collider.forwardFriction = WFC; Estamos haciendo una cosa antes de eso, que está cambiando la fuerza de fricción lateral sobre la base de cómo rápido que el coche va en la dirección hacia los lados. Esto se hace para evitar que el coche comienza a deslizarse hacia los lados en la superficie cuando el coche se hace girar en una curva. CalculateEnginePower () 

Page 19: unity coche

Cálculo de la potencia del motor que luego utilizan para aplicar la fuerza a la rigidbody es relativamente sencillo, pero tiene algunas peculiaridades. • Si no somos simplemente disminuir el límite de la potencia del motor a través del tiempo haciendo que el coche más lento. • Si estamos en el límite de la misma dirección que el coche se encuentra actualmente (que consulte con el HaveSameSign () de función) se calcula un valor a añadir a la fuerza del motor. Lo que pasa en el poder parece un poco raro: Se calculará un poder norma que es el producto de la potencia del motor de corriente divididos con la potencia máxima del motor (que da un resultado de entre 0 y 1) y luego multiplicar por 2. El resultado será de entre 0 (cuando se va más lento) y 2 (cuando se va en la máxima potencia). Entonces llamamos a la función de utilidad EvaluateNormPower (). Esta función se ve en el valor pasado y devuelve un número entre el 1 de un 10 si el poder es la norma entre 0 y 1. Si el poder es la norma entre 1 y 2, la función devolverá un valor entre 0 y 1. ¿Confundido? El número se utilizada en la ecuación que se suma la fuerza para el motor: currentEnginePower + = Time.deltaTime * 200 * EvaluateNormPower (normPower), "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 17 El resultado neto es que se añade más fuerza cuando se pulse el reductor de velocidad y el coche en marcha es lenta, a acelerar. Finalmente, cuando el coche alcanza su velocidad máxima, ninguna fuerza extra va a ser agregado a la potencia del motor que lo mantiene a una velocidad constante. • Si en cambio se sofoca en la dirección opuesta, es equivalente al frenado. En este caso nos también deducir la fuerza del motor a través del tiempo, sólo un poco más que cuando no sofoca. Por último, la fuerza del motor se calcula sujeto entre el valor de la fuerza para el arte actual y el tren anterior para evitar la posibilidad de calcular un cambio repentino en el valor que es demasiado alto o bajo. CalculateState () Esta es una pequeña función que llamamos ahora, porque tenemos que saber si las ruedas de tracción del coche y ruedas de dirección están en el suelo en las funciones que siguen. Lo que hace es muy simple: • Hemos establecido las variables canDrive y canSteer en false de forma predeterminada. • A continuación, revisamos cada rueda en nuestras ruedas de serie para ver si está en

Page 20: unity coche

contacto con el suelo: if (w.collider.isGrounded) Si está en el suelo, comprobamos qué tipo de rueda que es. Si se trata de una rueda motriz, canDrive se establece en true. Si se trata de un steerWheel, canSteer se establece en true. ¿Qué esto se suma a esta función después ha hecho su trabajo es que si por lo menos una unidad de la rueda (que "El coche Tutorial" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 18 se creó como las ruedas traseras) está en contacto con el suelo, que puede conducir.Si al menos uno de dirección de la rueda (el ruedas delanteras) está en contacto con el suelo, podemos dirigir. Ahora estamos hasta las dos últimas funciones, que son los que realmente se aplica a nuestros cálculos a la rigidbody del coche. Vamos a algo más de detalle aquí para salir con una buena idea de la lógica y los cálculos que terminan haciendo el viaje en coche y conducir. La primera función de música es la siguiente: ApplyThrottle () Sólo hacer algo en esta función si el CalculateState () define la variable para canDrive verdad (lo que significa que al menos una rueda motriz está en el camino). Si somos capaces de manejar, que iniciar mediante la comparación de la aceleración variable que es la entrada del usuario que introducirá la variable relativeVelocity.z que fue la velocidad en los coches hacia adelante dirección. Si estos valores tienen el mismo signo - determinado por la función de utilidad HaveSameSign () - que significa que estamos en el límite misma dirección que el coche va y en este caso estamos agregando una fuerza de aceleración a la rigidbody: "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 19 throttleForce = Mathf.Sign (aceleración) * rigidbody.mass currentEnginePower *; Si aceleración es negativa (el usuario pulsa el botón de freno), el signo será -1 y vamos a calcular un throttleForce negativo que se suma a la de coches, que también sabemos que tiene una velocidad negativa. Por lo tanto vamos a aceleración más rápida hacia atrás. Lo contrario es el caso de que el usuario está presionando a la reductor de velocidad botón. Luego se agrega un throttleForce delante de un coche que ya va hacia delante, lo que hace ir más rápido hacia adelante. Si relativeVelocity.z y aceleración tienen signos diferentes en cambio, entonces debe significar que 

Page 21: unity coche

la adición de aceleración en la dirección opuesta de la dirección que el coche está en marcha. Estamos en Dicho de otro modo de frenado o desaceleración. Lo hacemos mediante el ajuste de la variable sobre la base de la Fuerza de Frenado masa del automóvil y la fuerza de los artes del motor primera ficción: Frenado = Mathf.Sign (aceleración) * engineForceValues [0] rigidbody.mass *; Una vez más se utiliza el signo de la aceleración porque sabemos que la aceleración en este caso ha opuesto signo de la velocidad, resultando en que se calcula una fuerza opuesta a donde se dirige. Cuando se llevan a cabo para determinar si el coche debe acelerar o ralentizar, aplicamos las fuerzas calculadas para la dirección de avance rigidbody de: rigidbody.AddForce (* * transform.forward Time.deltaTime (throttleForce + Fuerza de Frenado)), "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 20 ApplySteering () A menos que usted está creando un juego de carreras de resistencia en la que están tratando de establecer el récord mundial de velocidad en un sección recta, la dirección es tan importante como la limitación, así que deja envolver por la aplicación de la dirección. Nosotros no se aplica ninguna fuerza del acelerador si no ruedas tocaban el suelo, y lo mismo pasa con esta función en los que no aplica ningún tipo de dirección, si no dirigir las ruedas toquen el suelo. En el comienzo de la función se calcula una variable denominada turnRadius, sobre la base de la entrada. La ecuación que hace que el aumento turnRadius cuando recurren a cualquier lado.Calculamos una valor minMaxTurn visitando el EvaluateSpeedToTurn () función. EvaluateSpeedToTurn () Esta función devuelve un valor que a su vez en función de lo rápido que el coche va, como se explica en que miró a los ajustes del coche. Cuanto más rápido el coche está en marcha, cuanto más cerca de este valor se llega a minimumTurn, haciendo más difícil a su vez cuando se va rápido. De vuelta en ApplySteering (), el turnSpeed calculamos relaciona directamente con la turnRadius y el coche de "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 21 velocidad hacia adelante. Cuanto más grande sea el radio, menor es el ángulo que a su vez cada fotograma debido a que el círculo que a su vez en el es más grande. 

Page 22: unity coche

Luego girar el coche: transform.RotateAround (* * transform.position + transform.right turnRadius dirigir,                transform.up,             turnSpeed Mathf.Rad2Deg * * * Time.deltaTime buey); El RotateAround () de una transformación gira alrededor de un punto específi ed y el eje, y tiene una ángulo que es la cantidad que se convierte. • El punto que la vuelta es el centro exacto del coche cuando no se están convirtiendo en absoluto. Cuando empezar a presionar los botones para dirigir, el punto se aleja del coche, hacia el lado que está girando. Recuerde que el novillo variable fue encontrado en el eje de entrada horizontal que es negativo cuando giramos a la izquierda y positiva cuando giramos a la derecha. turnRadius y oriente a crecer más grande es el más que a su vez. Cuando ellos se multiplican con la transform.right vector, obtenemos un punto que es basado en el centro del coche y se trasladó a la parte de dirección, como se muestra en las siguientes imágenes: "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 22 • El eje que dar la vuelta es el eje Y (arriba), lo que significa que girar el coche en el plano xz - que girar el coche alrededor de la línea se muestra en las fotos. • El ángulo se basa entonces en la turnSpeed que acaba de calcular, multiplicados por dirigir para obtener el izquierda / derecha. Ahora vamos en el interior: if (initialDragMultiplierX dragMultiplier.x>) Que reconocemos como cierto cuando estamos a mano de frenado. De allí si podemos o no ver son la dirección, mientras handbraking. Si no estamos de dirección, comprobamos si el coche se encuentra actualmente en el proceso de convertir al observar la angularVelocity.y valor de la rigidbody. Si este valor es cero o muy bajo, no están dando vuelta o girar muy poco y luego se aplica un valor aleatorio a la dirección de rotación. Esto simulará la inestabilidad del coche cuando handbraking y va en línea recta. Si el valor no es muy bajo, en vez aplicar el valor real angularVelocity.y a la rotación dirección. Si estamos en la dirección de hecho, el sentido de giro será -1 cuando se va a la izquierda y uno cuando se va derecha (sentido de rotación, porque de forma predeterminada se establece en el signo

Page 23: unity coche

de dirigir. Cuando el freno de mano adicional la dirección de rotación se ha establecido, se aplica la rotación a la "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 23 coche, pero esta vez alrededor de otro punto: frontWheels [0]. frontWheels localPosition + [1]. localPosition) * 0.5 Este punto se encuentra entre las dos ruedas delanteras y cuando el coche gira alrededor de ella, el resultado será que se mueve detrás fin al lado de rotación, mientras que la parte delantera mantiene su posición - que permite el coche para deslizarse en una manera fresca cuando se tira del freno de mano a alta velocidad mientras se gira. Ahora el círculo se completa y la actualización () y LateUpdate () funciones se ejecutarán en todo el superior en el siguiente bucle. Sólo el tiempo al lado los valores de entrada será diferente debido a la entrada de los jugadores y condiciones de la carretera, y nos pondremos en las diferentes fuerzas calculadas, creando la experiencia de conducir un coche de verdad "El Tutorial de coches" -. Creación de un juego de carreras para la Unidad, Parte 3 la unidad 24 Y que lo envuelve. Esperamos que hayas disfrutado de poner un coche juntos, jugar con sus variables y miró dentro del código con nosotros. Si quieres más, tenemos una sección fi nal para usted. También hemos incluido un modelo físico real para la visualización / el placer de conducir. Pero esta vez está por su cuenta. Física Modelo Real En la parte inferior de la vista del proyecto que se fi nd una carpeta llamada ~ AlternatePhysicsModel. Este carpeta contiene algunas secuencias de comandos y Prefabricados de la muestra para simular la física realista de coches en la Unidad. La simulación se presenta aquí no hacer uso de los colisionadores de la rueda de la Unidad, sino que pone en práctica sus propias colisionador rueda en guión basado en Physics.Raycast. La secuencia de comandos utiliza un Pacejka "fórmula mágica" - modelo de neumático base para calcular las fuerzas de la rueda para aplicar en el coche, lo que da mejores resultados. Lo más probable es que usted no necesita saber sobre el funcionamiento interno del modelo de la física. Si sólo quiero jugar un rato con él, lo mejor es tomar el ejemplo de prefabricados, y empezar a 

Page 24: unity coche

ajustar los valores, y ver qué pasa. Si abre las secuencias de comandos, verá que todos los parámetros son se explica en los comentarios. Trate de ajustar los valores un poco a la hora de conseguir una sensación para él. El Prefabricados incluido La carpeta contiene música Prefabricados coche ve, y la Prefabricados skidmarks.Para probarlo, sólo tienes que arrastrar uno de los coches y el skidmarks Prefab en la escena (por supuesto, el skidmarks Prefab probablemente esté ya en la escena). Ahora debería ser capaz de conducir alrededor de la escena con el coche con las teclas de flecha. "El coche Tutorial" - Creación de un juego de carreras para la Unidad, Parte 3 la unidad 25 Hay cuatro coches realistas con características muy diferentes incluido, le permiten experimentar con diferentes configuraciones de la física, y un auto deportivo con una configuración más al estilo arcade (alta adherencia realista). Todas las obras de arte de autos usados aquí son modelos gratuitas descargadas de Internet para la demostración propósitos, y en realidad no muy adecuado para su uso en los juegos. Los guiones se basan en las leyes de la física realista, con la excepción de la TractionHelper guión, que está diseñado para hacer música coches shtailing más controlable con entradas digitales. Actúa algo similar a cómo los sistemas ESP en la vida real no. Los scripts incluidos AerodynamicResistance.cs: Una copia de este script se debe agregar a cada vehículo para el cálculo de los coches la fricción aerodinámica. AntiRollBar.cs: Opcionalmente se suman a uno de estos por eje para simular anti-roll-bar para un mejor manejo. CarController.cs: La secuencia de comandos para manejar la entrada de coches. Uno de ellos es necesario para cada vehículo. Editar este script, si quieres cambiar el comportamiento del coche se controla, o implementar la IA o de la red coches controlados. También establece algunas características de los chasis de los coches, como el centro de gravedad y la inercia. Drivetrain.cs: motor de un coche y la transmisión. Aquí es donde puede configurar la caja de cambios y especificaciones técnicas del motor. Uno de ellos es necesario por coche. Skidmarks.cs: gerente skidmarks Mundial. Añadir una casa prefabricada Skidmarks a la escena, que utiliza este "El Tutorial de coches" - Creación de un juego de carreras para la Unidad, Parte 3 

Page 25: unity coche

la unidad 26 clase para representar y gestionar skidmarks para todos los coches. SoundController.cs: clase simple para reproducir sonidos del motor y arrastre. Uno de estos se debe agregar por coche. TractionHelper.cs: Si lo desea agregar una instancia de este por coche, para hacer el coche más estable. Wheel.cs: Esto simula la tracción de los neumáticos y el modelo de suspensión de la rueda, y actúa como un sustituto por la unidad integrada en la rueda Colisionador. Wing.cs: Añadir una o más de estos, si usted quiere levantar simular la carga aerodinámica o la aerodinámica de su coche.