Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

20.07.2012, 23:25

Leiter mit Unity

Hey liebe Community, ich bins mal wieder.

Ich sollte für meinen Kumpel mit Unity schnell ein Leiterscript schreiben. Ich habe es so gemacht, dass wenn der FPSController in den Trigger der Leiter kommt und die Taste R drückt, dass dann die Position erhöht wird. So sieht der Code aus:

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public float Height = 0.5f;
    private bool Climb;
    // Update is called once per frame
    void FixedUpdate () 
    {
        if (Input.GetKey(KeyCode.R) && Climb)
        {
            transform.position += new Vector3(0, Height * Time.deltaTime, 0);   
        }
    }
    
    void OnTriggerEnter()
    {
        Climb = true;
    }
    
    void OnTriggerExit()
    {
        Climb = false;  
    }


Das Funktioniert bis jetzt auch gut. Nur der Spieler bewegt sich ziemlich schnell und wenn man aus dem Trigger raus ist, "Springt" man förmlich auf und ab weil man wieder in den Trigger fällt und dann die Position wieder erhöht wird.
Wie habt ihr das mit Leitern gelöst oder kann mir jemand helfen?

Mfg Tobi

Zitat

Das programm, dass ich eben geschrieben hab ließ sich ohne einen einzigen Fehler kompilieren und und funktioniert so wie es soll. Das macht mir Angst, da ist was Faul

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

2

20.07.2012, 23:30

Du könntest einen boolean Wert für den Player implementieren (isOnLadder). In diesem Fall ändert sich die Art der Bewegung, bei W bewegt man sich nach oben, bei S nach unten, nimm dir ein Beispiel an der Source Engine.

Um eine Idee davon zu bekommen: https://developer.valvesoftware.com/wiki/Working_Ladders
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Ähnliche Themen