Jomnitech Geschrieben 17. März 2018 Melden Share Geschrieben 17. März 2018 Hallo Gibt es in Unity eine Art choose Funktion? wie z.B. choose(1,2,3); , so dass er sich einfach eine der drei Zahlen auwählt? Hab irgendwie nichts dazu gefunden. Oder alternativ eine random.range.floor Funktion? Edit: Ich verstehe die Funktion Random.Range nicht ganz. In der Beschreibung steht das es sowohl die min. als auch die max. Zahl beinhalten kann. Wenn ich jetzt random.rage (1,2) verwende, habe ich nie eine zwei, wenn ich random.range(1,3) verwende, habe ich nie eine 3. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 17. März 2018 Melden Share Geschrieben 17. März 2018 Ja ist auch seltsam bei der Float-Version ist es nicht so, aber bei der Int- Version steht auch dabei:Returns a random integer number between min [inclusive] and max [exclusive] (Read Only). Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 17. März 2018 Melden Share Geschrieben 17. März 2018 Aber hier mal 2 Funktionen die funktionieren sollten: float ChooseFloat(params float[] list) { int randomIndex = Random.Range(0, list.Length); return list[randomIndex]; } int ChooseInt(params int[] list) { int randomIndex = Random.Range(0, list.Length); return list[randomIndex]; } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Jomnitech Geschrieben 18. März 2018 Autor Melden Share Geschrieben 18. März 2018 @Zer0Cool Ja eben, aber der max Wert wird nie ausgegeben. Habe jetzt sowas in Verwendung: Randomizer++; if (Randomizer > 500) { rRange = Random.Range(1, 4); Randomizer = 0; } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
NewbiLars Geschrieben 20. März 2018 Melden Share Geschrieben 20. März 2018 bei Java gab es eine ähnliche random funktion - weiß leider nicht mehr wie die hieß. da war es aber so, dass wenn du beispielweise 10 angegeben hast also (1-10), hat das Programm daraus 0-9 gemacht. Da es dies als Array sah und das beginnt mit 0...Bei Java wurde das dann mit einem +1 am Return-Wert (Variabel) behoben Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 20. März 2018 Melden Share Geschrieben 20. März 2018 Der Witz ist ja, wenn man "Random.Range" Floats übergibt bekommt man: min-max und wenn man Integer übergibt bekommt man: min-(max-1) Am besten eine eigene Methode verwenden: // Returns a random integer number between min [inclusive] and max [inclusive] public int RangeInt(int min, int max) { return Random.Range(min,max+1); } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Jomnitech Geschrieben 21. März 2018 Autor Melden Share Geschrieben 21. März 2018 @NewbiLars Aber Arrays starten doch bei 1... nur kleiner Scherz. Aber in dem Fall müsste ich auch mal den Wert 0 erhalten? Bei z.B. Random.Range(1,3); bekomme ich nur die Zahl 1 oder 2, aber nicht 0,1,2. @Zer0Cool Ich probier das mal so aus, vielen Dank. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.