public void Update(float delta) { if (worldVelocity.SqrMagnitude() > Vector3.kEpsilon) { var newPosition = this.position + worldVelocity * delta; if (world.Bounds.Contains(newPosition)) { newPosition.Y = world.GetHeight(newPosition.X, newPosition.Z) + this.Height * 0.5f + this.Radius; } this.Position = newPosition; } }