Jump to content
Unity Insider Forum

Ich habe keine Ahnung wie ich das machen soll?


Ultimotick

Recommended Posts

Hallo,

Ich versuche gerade ein Feld zu coden ,was bei Berührung schaden macht .Nur weiß ich nicht wie ich die Variable ändere die aus einem anderem Skript kommt(das mit dem Variablen aus andrem Skript ziehen funktioniert super).

Unten ist mein Entwurf.

Wie macht man das könnte mir das bitte jemand sagen.

Danke schon mal im voraus!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Colisionscript : MonoBehaviour
{
    public SC_FPSController mySC_FPSController;

    private void OnCollisionEnter(Collision collision)
    {
        mySC_FPSController.CurrentHealth - 50;

    }
}
Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

bitte versuch's nächstes Mal mit einem etwas aussagekräftigeren Titel.

Der Collision-Parameter hat schon alles was du brauchst. Der Collider, der da referenziert wird, ist der Collider, der dein Objekt berührt. Also im Prinzip sowas:

var health = collision.collider.GetComponent<Health>();

if (health)
{
  health.ApplyDamage(50);
}

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Warte mal da komm ich jetzt nicht ganz mit🙄.

Woher kommt jetzt auf einmal das "health" ist das eine von Unity vorgegebene Methode oder meints du mein "currenthealth"?

Und woher kommt jetzt jetzt dieses ApplyDamage ist das auch eine methode und wenn ja warum funktioniert das bei mir nicht?

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist Beispielcode, den kannst du nicht einfach so kopieren. Irgendwie machst du in deinem Spiel ja Lebenspunkte. Irgendwie ziehst du die ab. Das wird irgendwie auf irgendeiner Komponente passieren. Der Punkt ist, dass der Collision-Parameter eine Eigenschaft "collider" hat, die du wiederum nach dieser Komponente fragen kannst. Auf die Art erhältst du Zugriff auf die Lebenspunkte des Objekts - wie auch immer du die implementiert hast.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...