Buscar..


Colisionadores

Box Collider

Un coleccionista primitivo con forma de cuboide. Box Colliders habilitados y deshabilitados

Propiedades

  • Is Trigger : si está marcado, el Box Collider ignorará la física y se convertirá en un Trigger Collider

  • Material : una referencia, si se especifica, al material de física del Box Collider.

  • Centro - La posición central de The Box Collider en el espacio local.

  • Tamaño : el tamaño del Box Collider medido en el espacio local.

Ejemplo

// Add a Box Collider to the current GameObject.
BoxCollider myBC = BoxCollider)myGameObject.gameObject.AddComponent(typeof(BoxCollider));
 
// Make the Box Collider into a Trigger Collider.
myBC.isTrigger= true;

// Set the center of the Box Collider to the center of the GameObject.
myBC.center = Vector3.zero;

// Make the Box Collider twice as large.
myBC.size = 2;

Colisionador de esfera

Un coleccionista primitivo con forma de esfera. Colectores de esfera habilitados y deshabilitados

Propiedades

  • Is Trigger : si está marcado, Sphere Collider ignorará la física y se convertirá en un Trigger Collider.

  • Material : una referencia, si se especifica, al material de física del Colisionador de Esfera.

  • Centro - La posición central de The Sphere Collider en el espacio local.

  • Radio - El radio del Colisionador

Ejemplo

// Add a Sphere Collider to the current GameObject.
SphereCollider mySC = SphereCollider)myGameObject.gameObject.AddComponent(typeof(SphereCollider));
 
// Make the Sphere Collider into a Trigger Collider.
mySC.isTrigger= true;

// Set the center of the Sphere Collider to the center of the GameObject.
mySC.center = Vector3.zero;

// Make the Sphere Collider twice as large.
mySC.radius = 2;

Colisionador de cápsulas

Dos medias esferas unidas por un cilindro. Capsule Colliders habilitado y deshabilitado

Propiedades

  • Está activado : si está marcado, Capsule Collider ignorará la física y se convertirá en un activador.

  • Material : una referencia, si se especifica, al material de física del Capsule Collider.

  • Centro - La posición central de Capsule Collider en el espacio local.

  • Radio - El radio en el espacio local.

  • Altura - Altura total del colisionador

  • Dirección - El eje de orientación en el espacio local.

Ejemplo

// Add a Capsule Collider to the current GameObject.
CapsuleCollider myCC = CapsuleCollider)myGameObject.gameObject.AddComponent(typeof(CapsuleCollider));
 
// Make the Capsule Collider into a Trigger Collider.
myCC.isTrigger= true;

// Set the center of the Capsule Collider to the center of the GameObject.
myCC.center = Vector3.zero;

// Make the Sphere Collider twice as tall.
myCC.height= 2;

// Make the Sphere Collider twice as wide.
myCC.radius= 2;

// Set the axis of lengthwise orientation to the X axis.
myCC.direction = 0;

// Set the axis of lengthwise orientation to the Y axis.
myCC.direction = 1;

// Set the axis of lengthwise orientation to the Y axis.
myCC.direction = 2;

Colisionador de ruedas

Propiedades

  • Misa - La masa del colisionador de ruedas

  • Radio - El radio en el espacio local.

  • Velocidad de amortiguación de la rueda - Valor de amortiguación para el recolector de ruedas

  • Distancia de suspensión : extensión máxima a lo largo del eje Y en el espacio local

  • Distancia de punto de aplicación de fuerza : el punto donde se aplicarán las fuerzas,

  • Centro - Centro del colisionador de ruedas en el espacio local

Muelle de suspensión

  • Primavera : la velocidad a la que la rueda intenta volver a la posición de destino.

  • Amortiguador : un valor más grande amortigua más la velocidad y la suspensión se mueve más lentamente

  • Posición de destino : el valor predeterminado es 0.5, en 0 la suspensión es de abajo hacia abajo, en 1 está en la extensión completa

  • Fricción delantera / lateral : cómo se comporta el neumático al rodar hacia delante o hacia los lados

Ejemplo


Colisionador de malla

Un colisionador basado en un activo de malla. Colectores de malla no convexos y convexos

Propiedades

  • Is Trigger : si está marcado, el Box Collider ignorará la física y se convertirá en un Trigger Collider

  • Material : una referencia, si se especifica, al material de física del Box Collider.

  • Malla - Una referencia a la malla en la que se basa el Colisionador

  • Convexo : los colectores de malla convexos están limitados a 255 polígonos: si está habilitado, este colisionador puede colisionar con otros colectores de malla

Ejemplo


Si aplica más de un Colisionador a un GameObject, lo llamamos un Colisionador Compuesto. introduzca la descripción de la imagen aquí

Colisionador de ruedas

El colisionador de ruedas dentro de la unidad se basa en el colisionador de ruedas PhysX de Nvidia y, por lo tanto, comparte muchas propiedades similares. Técnicamente, la unidad es un programa "sin unidad", pero para que todo tenga sentido, se requieren algunas unidades estándar.

Propiedades básicas

  • Masa: el peso de la rueda en Kilogramos, esto se utiliza para el momento de la rueda y el momento de interia al girar.
  • Radio - en metros, el radio del colisionador.
  • Velocidad de amortiguación de la rueda: ajusta la "respuesta" de las ruedas al par aplicado.
  • Distancia de suspensión: distancia total de desplazamiento en metros que la rueda puede recorrer
  • Distancia de punto de aplicación de la fuerza: ¿dónde está la fuerza de la suspensión aplicada al cuerpo rígido padre?
  • Centro - La posición central de la rueda.

Ajustes de suspensión

  • Primavera: esta es la constante de resorte, K, en Newtons / metro en la ecuación:

Fuerza = Primavera constante * Distancia

Un buen punto de partida para este valor debe ser la masa total de su vehículo, dividida por el número de ruedas, multiplicada por un número entre 50 y 100. Por ejemplo, si tiene un automóvil de 2,000 kg con 4 ruedas, entonces cada rueda deberá soporte 500kg. Multiplica esto por 75, y tu constante de primavera debería ser de 37,500 Newtons / metro.

  • Amortiguador: el equivalente a un amortiguador en un automóvil. Las tasas más altas hacen que el suspenso sea "más rígido" y las tasas más bajas lo hacen "más suave" y es más probable que oscile.
    No conozco las unidades o la ecuación para esto, creo que tiene que ver con una ecuación de frecuencia en física.

Configuración de fricción lateral

La curva de fricción en la unidad tiene un valor de deslizamiento determinado por cuánto se desliza la rueda (en m / s) desde la posición deseada en comparación con la posición real.

  • Extremum Slip: esta es la cantidad máxima (en m / s) que una rueda puede deslizar antes de que pierda tracción

  • Valor extremo: esta es la cantidad máxima de fricción que se debe aplicar a una rueda.

Los valores de Exrtremum Slip deben estar entre .2 y 2m / s para los autos más realistas. 2 m / s es de aproximadamente 6 pies por segundo o 5 mph, que es una gran cantidad de deslizamiento. Si cree que su vehículo necesita tener un valor superior a 2 m / s para el deslizamiento, debe considerar aumentar la fricción máxima (Valor extremo).

Fracción máxima (valor extremo) es el coeficiente de fricción en la ecuación:

Fuerza de fricción (en newtons) = Coeficiente de fricción * Fuerza a la baja (en newtons)

Esto significa que con un coeficiente de 1, está aplicando toda la fuerza de la cabina + suspensión opuesta a la dirección de deslizamiento. En aplicaciones del mundo real, los valores superiores a 1 son raros, pero no imposibles. Para un neumático sobre asfalto seco, los valores entre .7 y .9 son realistas, por lo que es preferible el valor predeterminado de 1.0.

Este valor no debe ser realísticamente superior a 2.5, ya que comenzará a ocurrir un comportamiento extraño. Por ejemplo, empiezas a girar a la derecha, pero debido a que este valor es tan alto, se aplica una gran fuerza en sentido opuesto a tu dirección y comienzas a deslizarte en el giro en lugar de alejarte.

Si ha maximizado ambos valores, entonces debería comenzar a elevar el deslizamiento y el valor de la asíntota. El deslizamiento de asíntota debe estar entre 0.5 y 2 m / s, y define el coeficiente de fricción para cualquier valor de deslizamiento más allá del deslizamiento de asíntota. Si encuentra que sus vehículos se comportan bien hasta que rompe la tracción, en cuyo punto actúa como si estuviera en el hielo, debe aumentar el valor de Asymptote. Si descubre que su vehículo no puede desviarse, debe disminuir el valor.

Fricción Delantera

La fricción hacia adelante es idéntica a la fricción lateral, con la excepción de que esto define cuánta tracción tiene la rueda en la dirección del movimiento. Si los valores son demasiado bajos, sus vehículos harán quemaduras y solo harán girar los neumáticos antes de avanzar, lentamente. Si es demasiado alto, su vehículo puede tener la tendencia de intentar hacer una voltereta o algo peor.

Notas adicionales

No espere poder crear un clon GTA u otro clon de carreras simplemente ajustando estos valores. En la mayoría de los juegos de conducción, estos valores se cambian constantemente en el script para diferentes velocidades, terrenos y valores de giro. Además, si solo está aplicando un par constante a los colisionadores de ruedas cuando se presiona una tecla, su juego no se comportará de manera realista. En el mundo real, los automóviles tienen curvas de par y transmisiones para cambiar el par aplicado a las ruedas.

Para obtener los mejores resultados, debe ajustar estos valores hasta que el automóvil responda razonablemente bien y luego realice cambios en el par de ruedas, el ángulo de giro máximo y los valores de fricción en el script.

Puede encontrar más información sobre los colisionadores de ruedas en la documentación de Nvidia: http://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/Vehicles.html

Colisionadores de gatillo

Métodos

  • OnTriggerEnter()
  • OnTriggerStay()
  • OnTriggerExit()

Puede convertir un Colisionador en un Disparador para utilizar los OnTriggerEnter() , OnTriggerStay() y OnTriggerExit() . Un Trigger Collider no reaccionará físicamente a las colisiones, otros GameObjects simplemente lo atravesarán. Son útiles para detectar cuándo otro GameObject está en un área determinada o no, por ejemplo, cuando recopilamos un elemento, es posible que deseamos poder ejecutarlo pero detectar cuándo sucede esto.

Trigger Collider Scripting

Ejemplo

El método a continuación es un ejemplo de un oyente de activación que detecta cuando otro colisionador ingresa al colector de un GameObject (como un jugador). Los métodos de activación se pueden agregar a cualquier secuencia de comandos asignada a un GameObject.

void OnTriggerEnter(Collider other)
{
    //Check collider for specific properties (Such as tag=item or has component=item)
}


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow