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