Ich möchte ein Objekt langsam von seiner ursprünglichen Position in eine etwas höhere Position bewegen, aber dieser Code bewegt das Objekt sofort in die höchste Position, auch wenn ich eine sehr langsame Geschwindigkeit wie 0,0001 verwende f. Ich rufe LiftObj() innerhalb eines anderen Codes nur 1 Mal und ich sage es laufen, bis es den LiftOffset erreicht. Was ist falsch an diesem Code?Objekt bewegt sich sofort in eine neue Position auch bei sehr niedriger Geschwindigkeit
void LiftObj(GameObject Obj) {
float origianlPos = Obj.transform.position.y;
while (Obj.transform.position.y < origianlPos + liftOffset) {
Obj.transform.position += Vector3.up * 0.0001f;
float newPos = Obj.transform.position.y;
newPos = Mathf.Clamp (newPos, newPos, newPos + liftOffset);
Obj.transform.position += Vector3.up * 0.0001f;
}
Offensichtlich um Hilfe zu bitten bedeutet, dass ich kein Experte für C# oder Unity bin. Es wäre viel besser, anstatt darauf hinzuweisen, dass ich Ihnen keinen besseren Code vorschlage als meinen. – CarloCupp