Charakter-Controller So fügen Sie die Fähigkeit hinzu, starre Körper in Einheit zu schieben

In diesem Tutorial erweitern wir das Skript Unity FPS Controller, um es der Figur zu ermöglichen, starre Körper innerhalb der Szene zu verschieben (das folgende Skript sollte mit jedem Controller funktionieren, solange dieser angeschlossen ist CharacterController-Komponente). Dieses Skript kann Ihrem Spiel eine realistische Note verleihen, indem es den Spielern ermöglicht, mit Objekten und dynamischen Umgebungen zu interagieren.

Schritt 1: Erstellen Sie ein neues Skript

  • Erstellen ein neues C#-Skript in Ihrem Unity-Projekt. Sie können es etwa "CharacterPushController" nennen.

Schritt 2: Kopieren Sie das bereitgestellte Skript

  • Kopieren Sie den folgenden Code in das neu erstellte Skript. Sie können die Variable 'pushPower' anpassen, um die Stärke des Stoßes zu steuern. Darüber hinaus möchten Sie möglicherweise die Bedingungen für die Anwendung der Schubkraft basierend auf der Logik Ihres Spiels anpassen.

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

Schritt 3: Hängen Sie das Skript an

Schritt 4: Testen

  • Spielen Sie die Szene und testen Sie die Fähigkeit des Charakter-Controllers, Starrkörper mithilfe des neu erstellten Skripts zu verschieben.

Schritt 5: Anpassen

  • Passen Sie und 'pushPower' an, um das gewünschte Verhalten in Ihrem Spiel zu erreichen.
Empfohlene Artikel
3D-Wurm-Controller-Tutorial für Unity
Dialogsystem für Einheit
So fügen Sie dem Character Controller in Unity Unterstützung für bewegliche Plattformen hinzu
Hubschrauber-Controller für Unity
Hinzufügen von Double Jump-Unterstützung zu einem 2D-Platformer-Charakter-Controller in Unity
So erstellen Sie eine Kransteuerung in Unity
Auto-Controller für Unity