El Character Controller es principalmente utilizado para controles de jugador de tercera o primera persona que no hace uso de la física del Rigidbody.
Propiedad: | Función: |
---|---|
Slope Limit | Limita el collider para que solo suba pendientes que sean menos empinadas (en grados) que un valor indicado. |
Step Offset | El personaje va a configurar una escalera solamente si está cerca al piso que el valor indicado. Este no debe ser mayor que la altura del Character Controller o va a generar error. |
Skin width | Dos Colliders pueden penetrarse entre sí tan profundo como el ancho de su piel (Skin Width). Mayores Skin Widths van a reducir la fluctuación de fase. Bajo Skin Width puede causar al personaje en quedarse atrapado. Un buen ajuste es hacer este valor 10% del Radius. |
Min Move Distance | Si el personaje intenta moverse debajo del valor indicado, no se moverá en absoluto. Esto puede ser utilizado para reducir la fluctuación de fase. En la mayoría de situaciones este valor no debería ser dejado en 0. |
Center | Esto va a desplazar el Capsule Collider en el espacio del mundo, y no va a afectar qué tanto el Personaje hace pivotes. |
Radius | Longitud del radio del Capsule Collider. Este es esencialmente el ancho del collider. |
Height | La altura de la Capsule Collider del personaje. Cambiar esto va a escalar el collider a lo largo del eje Y en ambas direcciones positivas y negativas. |
Los controles tradicionales de primera persona estilo Doom no son físicamente reales. El personaje corre 90 millas por hora, para inmediatamente y se convierte en una moneda de diez centavos. Debido a que es tan ficticio, el uso de Rigidbodies y física para crear este comportamiento es impráctico y se sentirá mal. La solución es el Character Controller especializado. Es simplemente una cápsula con forma de Collider que se le puede decir que se mueva en alguna dirección desde un script. El Controller luego va a llevar a cabo el movimiento pero se limitado por las colisiones. Éste se deslizará a lo largo de paredes, caminar escaleras (si son más bajas que el Step Offset) y caminar en pendientes dentro de un _Slope Limit.
El Controlador (Controller) no reacciona a fuerzas por sí mismo y no empuja automáticamente los Rigidbodies.
Si usted quiere empujar los Ridibodies u objetos con el Charaacter Controller, usted puede aplicar fuerzas a cualquier objeto que colisione vía la función OnControllerColliderHit() a través de scripting.
Por otro lado, si usted quiere que su personaje del jugador sea afectado por física entonces usted podría mejor utilizar un Rigidbody en vez de un Character Controller.
Usted puede modificar la Height y el Radius para que encaje con el mesh de su personaje. Es recomendado siempre utilizar acerca de 2 metros para un personaje que se parezca a un humano. Usted puede también modificar el Center de la cápsula en caso de que su punto de pivote no esté exactamente en el centro de su Personaje.
Step Offset puede afectar esto también, asegúrese de que este valor esté entre 0.1 y 0.4 para un humano de tamaño de 2 metros.
Slope Limit no debería ser muy pequeño. A veces utilizar un valor de 90 grados funciona mejor. El Character Controller no será capaz de escalar paredes debido a la figura de la cápsula.
El Skin Width es una de las propiedades más críticas para tenerla bien cuando ajuste su Character Controller. Si su personaje se queda atrapado, esto debe ser debido a que su Skin Width sea muy pequeño. La Skin Width le permitirá a sus objetos poco a poco entrar el Controller pero quita la fluctuación de fase y previene que se quede atrapado.
Es una buena práctica mantener su Skin Width al menos mayor que 0.01 y más que el 10% de su Radius.
Nosotros recomendamos mantener Min Move Distance en 0.
Vea la referencia de script del Character Controller Aquí