Controlador de personajes Cómo agregar la capacidad de empujar cuerpos rígidos en Unity

En este tutorial, mejoraremos el script Unity FPS Controller para permitir que el personaje empuje cuerpos rígidos dentro de la escena (el script a continuación debería funcionar con cualquier controlador, siempre y cuando tenga un controlador adjunto). componente CharacterController). Este script puede agregar un toque realista a tu juego al permitir a los jugadores interactuar con objetos y entornos dinámicos.

Paso 1: cree un nuevo script

  • Cree un nuevo script C# en su proyecto Unity. Puedes nombrarlo algo como "CharacterPushController".

Paso 2: copie el script proporcionado

  • Copie el código siguiente en el script recién creado. Puede ajustar la variable 'pushPower' para controlar la fuerza del empujón. Además, es posible que desees personalizar las condiciones para aplicar la fuerza de empuje según la lógica de tu juego.

CharacterPushController.cs

using UnityEngine;

public class CharacterPushController : MonoBehaviour
{
    // Adjust this variable to control the strength of the push
    public float pushPower = 2.0f;

    void OnControllerColliderHit(ControllerColliderHit hit)
    {
        Rigidbody body = hit.collider.attachedRigidbody;

        // No rigidbody or kinematic rigidbody
        if (body == null || body.isKinematic)
        {
            return;
        }

        // Avoid pushing objects below the character
        if (hit.moveDirection.y < -0.3)
        {
            return;
        }

        // Calculate push direction from move direction,
        // pushing only to the sides, not up and down
        Vector3 pushDir = new Vector3(hit.moveDirection.x, 0, hit.moveDirection.z);

        // Apply the push
        body.velocity = pushDir * pushPower;
    }
}

Paso 3: adjunte el guión

  • Adjunte el script "CharacterPushController" al GameObject con el componente CharacterController.

Paso 4: prueba

  • Juega la escena y prueba la capacidad del controlador del personaje para empujar cuerpos rígidos con la ayuda del guión recién creado.

Paso 5: ajustar

  • Ajusta y 'pushPower' para lograr el comportamiento deseado en tu juego.