Karaktercontroller Hoe u de mogelijkheid kunt toevoegen om starre lichamen in eenheid te duwen

In deze tutorial verbeteren we het Unity FPS Controller-script om het personage in staat te stellen rigide lichamen binnen de scène te duwen (het onderstaande script zou met elke controller moeten werken, zolang er maar een aangesloten CharacterController-component). Dit script kan een realistisch tintje aan je spel toevoegen doordat spelers kunnen communiceren met objecten en dynamische omgevingen.

Stap 1: Maak een nieuw script

  • Maak een nieuw C#-script in uw Unity-project. Je kunt het zoiets noemen als "CharacterPushController".

Stap 2: Kopieer het meegeleverde script

  • Kopieer de onderstaande code naar het nieuw gemaakte script. U kunt de variabele 'pushPower' aanpassen om de kracht van de duw te regelen. Bovendien wil je misschien de voorwaarden voor het toepassen van de duwkracht aanpassen op basis van de logica van je spel.

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;
    }
}

Stap 3: Voeg het script toe

Stap 4: Testen

  • Speel de scène en test het vermogen van de karaktercontroller om starre lichamen te duwen met behulp van het nieuw gemaakte script.

Stap 5: Aanpassen

  • Pas de 'pushPower' aan om het gewenste gedrag in uw spel te bereiken.
Voorgestelde artikelen
Hoe u kraanbediening in eenheid kunt maken
Hurken toevoegen aan FPS-speler in Unity
Unity Hoe u mobiele aanraakbedieningen maakt
Head Bobbing-effect toevoegen aan de camera in eenheid
RTS- en MOBA-spelercontroller voor Unity
Spelersbeweging in eenheid creëren
3D-wormcontroller-tutorial voor Unity